Unity 3D/2D移动开发实战教程
上QQ阅读APP看书,第一时间看更新

知识总结

知识点一:MonoBehaviour类

MonoBehaviour类是每个脚本派生类的基类。每个JavaScript脚本自动继承MonoBehaviour类,使用C#时需要显式继承MonoBehaviour类。

在使用MonoBehaviour类的时候,需要注意它有哪些可重写函数,这些可重写函数会在发生哪些事件的时候被调用。在Unity中最常用到的几个可重写函数如下。

(1)Awake函数:当一个脚本被实例化时,Awake函数被调用。在这个函数一般完成成员变量的初始化。

(2)Start函数:仅在Update函数第一次被调用前调用。因为它是在Awake函数之后被调用的,可以把一些需要依赖Awake函数的变量放在Start函数里面初始化。同时在这个函数中执行StartCoroutine进行一些协程的触发。

(3)Update函数:当开始播放游戏帧时(此时,GameObject已实例化完毕),其Update函数在每一帧被调用,是最主要最常用的帧更新函数。

(4)LateUpdate函数:LateUpdate函数是在所有Update函数调用后被调用,该函数最常应用于第三人称的相机跟随。

(5)FixedUpdate函数:当MonoBehaviour启用时,其FixedUpdate函数在固定帧率的每一帧被调用,在帧率比较低时,每帧可被多次调用,若帧率比较高,就可能不被调用。FixedUpdate函数比Update函数调用更频繁。

(6)OnEnable函数:当对象变为可用或激活状态时,此函数被调用。

(7)OnDisable函数:当对象变为不可用或非激活状态时,此函数被调用。

(8)OnDestroy函数:当MonoBehaviour将被销毁时,此函数被调用。

知识点二:脚本与GameObject的关系

在Unity中,脚本的职责就是做GameObject的逻辑驱动,所有需要挂载到GameObject上面的脚本,都需要继承自MonoBehaviour,MonoBehaviour是Unity中所有脚本驱动的基类。

被显式添加到Hierarchy面板中的GameObject会被最先实例化,GameObject被实例化的顺序是从下往上。GameObject被实例化的同时,加载其组件并实例化,如果挂载了脚本组件,则实例化脚本组件时,会调用脚本的Awake函数,组件的实例化顺序也是从下往上。在所有显式的GameObject及其组件被实例化完成之前,游戏不会开始播放帧。

试一试

请完成一个Hello,World!程序,并将它创建为一个标准的Windows可执行程序,运行效果如图1-39。具体操作要求如下。

(1)创建两个文件,一个是脚本文件,另一个是场景文件,并命名为HelloWorld。

(2)改变字符大小,在窗口显示Hello,World!。

(3)将程序编译成独立运行的标准Windows程序。

(4)调试程序,显示Log。

图1-39 查看运行效果