「Unity入门」Step by step的太空清理垃圾游戏Part 6-2:初始化菜单界面

对用户界面来说,一般我们进入游戏并不是直接开始的,一般会有“登录”、”设置“,甚至”关卡选择“等操作。本次我们也将建造一个游戏的初始化和结束界面。

不论是简单 or 复杂的游戏,打开它的第一个界面大多数都是开始菜单。作为对一个游戏的“第一印象”,吸引人的初始化菜单让人想打开一探究竟,即展现了一个游戏的美术风格,也常有例如登录、选择关卡、设置等等个性化、实用的功能。

锈湖-Cube Escape Collection的开始菜单

对于我们这个简单的游戏,大概开始/退出这两个按键就足够了。但更加复杂的,比如锈湖的方块逃脱有多个关卡,就需要更多的部分来完成了。每一个小方块都是用户界面上的按钮,这些按钮在被点击时(OnClick)可以打开相应的游戏场景。

虽然太空清理游戏比较简单,我们还是按照以上的方法来完成初始化菜单。

首先建立一个新的场景来作为游戏初始化菜单。

  • File – New Scene – Create。会打开一个全新的场景

不要担心,你之前的project没有被覆盖掉,除非你没有保存。

  • Cmd / Ctrl + S 保存新的场景,会有一个对话框弹出,将场景的名字改为“StartMenu”

(命名并保存新的菜单场景

  • 来到下方资源栏,将新建的场景拖拽到Scenes文件夹中,方便归类保存

现在资源栏中有两个场景,分别是之前的太空场景和现在的开始菜单场景。通过双击它们的图标可以互相切换。

(Asset > Scenes中的两个场景,分别是主游戏场景和开始菜单场景)

  • 在左上hiearchy中,新建UI – Canvas,通过Panel、button和Text做一个简单的初始化菜单界面。

简单的开始菜单

具体如何完成用户界面请参考之前的教程~这里就不重复了

菜单完成后,需要实现开始和退出游戏的功能。因为真正的太空游戏在另外一个场景“SampleScene”中,我们需要用SceneManagement来切换到另外的场景。

  • 新建Script - 命名“MenuManager”,双击打开Script

  • 首先,在class外使用SceneManagement

using UnityEngine.SceneManagement;

  • 在class内,创建公开的方法StartGame()

public void StartGame ()

   {

       SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex +1);

   }

LoadScene来加载指定的场景。而参数中的GetActiveScene指的就是当前的运行的场景(开始菜单)。+1则指定了要运行当前场景的下一个。我们需要让“下一个”指向游戏的主场景——太空,具体如何定义顺序(“下一个”)需要在Build前完成。

  • 创建另一个公开的方法QuitGame()。

public void QuitGame()

   {

       Application.Quit();

   }

Quit()这个方法可以让我们直接退出这个application,即为退出游戏。

  • 保存,返回Unity编辑器

  • 新建一个空的GameObject命名为“MenuManager”,将“MenuManager”代码拖拽称为它的一部分。

  • 选择Start Button,添加OnClick()并将MenuManager这个object拖拽进入空格,在旁边的方法中选择“MenuManager“ – “StartGame”

  • 相同的方法为Quit Button添加“QuitGame”

(定义Start按钮的OnClick功能)

添加完成并保存后,我们来定义场景Build的顺序。

  • 点击File – Build Setting,新的对话框会弹出

    最上方的“Scenes in Build”会现实已经添加的场景以及它们相应的顺序。现在这一栏应该是空的。
  • 点击“Add Open Scenes“,可以看到Scenes/StartMenu被添加到了列表里,即为当前的场景。

    并且它的顺序为0,代表着StartMenu是游戏开始后用户看到的第一个场景。这正是我们想要的。
  • 在资源栏中双击打开太空清理游戏的场景,用同样的方法把它也加入list中。

最后,会得到类似这样的列表。

(加入开始菜单和主场景后的Build List)

现在测试一下,我们看到的第一个场景变成了开始菜单!点击Start就可以进入游戏啦。

(Notes:这次没有视频一起发是因为没来得及剪视频,录还是录了的...尽快找机会补上!大概还有一个大的chapter这个小游戏就完成啦!初步打算下一个做AR相关的教程,有什么其他想要了解的欢迎评论区提出哦~)

如果有任何疑问或者建议,也欢迎在下方留言评论哟~

  • 39
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值