RPG 游戏开发(14)GameManager
前面三个部分,我们已经把游戏的基本内容做好了(角色移动、场景设计、碰撞触发某些功能)。现在,我们需要给游戏打上地基,让游戏可以保存玩家信息——金币、经验值、武器等……
那么我们在 Scripts 文件夹里创建一个新的脚本 GameManager,Unity 默认会将此脚本的图标变更为齿轮状。双击编辑它。首先,我们定义一个 instance 变量,类型是 GameManager(也就是我们现在创建的脚本),修饰符为 public static。修饰符是 static,这意味着这个变量是全局的。我可以在任何一个类访问 GameManager.instance 来访问到这个 GameManager
我们让游戏的 GameManager 自己获取自己,所以重写 Awake 函数,内容是 instance = this。意味着这个类的 instance 对象指向他自己。
using UnityEngine; |
回到 Unity,我们先解决一个很久的问题 Sample Scene 有点太开玩笑了,我们打开 Scene 文件夹,然后将其重命名为 Main。注意,记得先保存再命名。
然后我们在 Main 场景的 Hierarchy 面板中,右键 Create Empty 命名为 Game Manager。这是一个空的游戏物件,意味着他除了能够记录位置之外,就没有其他属性了。我们将其坐标设置为 0(可以直接右键 Transform,然后选择 Reset Component)。
将 GameManager 脚本嵌入到 Game Object 里。
Game Manager 是用于保存游戏中的所有主要信息,所以我们给他定义几个成员变量,另外还有两个函数,用于保存和读取游戏状态。
using System.Collections; |
这里给大家一些建议,比如我们可以在切换场景的时候保存游戏、或者当玩家拾取道具的时候可以保存游戏,这一切都取决于你。另外读取游戏的时间点可以是在当场景被加载后。Unity 提供了回调函数执行这个操作,接下来我们就去学习这些回调函数。
那么本章就简单的讲解 GameManager 的用途。