Unity内置的方法Start()方法MonoBehaviour.startConsole视图C#游戏开发快速入门大学霸

Unity内置的方法Start()方法MonoBehaviour.startConsole视图C#游戏开发快速入门大学霸

C#游戏开发快速入门

4.4  Unity内置的方法Unity内置的方法Start()方法MonoBehaviour.startConsole视图C#游戏开发快速入门大学霸

在Unity中新建的脚本文件,里面会自动添加一些代码,如图4-5所示。读者在学习完方法以后,有没有觉得自动添加的代码中,Start()和Update()的书写形式很像方法。没错,它们就是方法。只不过它们是Unity内置的方法,他们会被游戏程序调用。

图4-5  脚本中Unity自动添加的代码Unity内置的方法Start()方法MonoBehaviour.startConsole视图C#游戏开发快速入门大学霸

因为这两个方法在脚本中很常用,所以Unity直接在新建的脚本中添加了它们。那么,读者可能要问了,这两个方法会如何作用于游戏对象呢?代码中使用了注释(双斜杠“//”以及后面的部分就是注释)对这两个方法进行了简单的说明:前者在初始化时被调用,后者在游戏运行过程的每一帧被调用。如果读者并不满足于注释上的解释,可以考虑查阅Unity的帮助文档。在第1章中,作者介绍过帮助文档的打开和检索方式,忘了的话可以去复习以下。

现以查找Start()方法的使用说明为例。在帮助文档的检索框中输入MonoBehaviour.start,开始查找。一般情况下会查找出很多结果,选择需要的结果,打开它就可以了。整个过程如图4-6所示。

在帮助文档中,会首先对这个方法的功能和使用步骤做简要说明,并在最后给出这个方法的使用示例。

提示:Unity 的脚本可以使用三种语言编写,它们是C#、JavaScript和Boo,因此帮助文档会给出分别使用这3种语言的使用示例。因为本书讲解时使用的语言是C#,所以建议读者看C#语言编写的示例。

图4-6  使用Unity提供的帮助文档,查看Start()方法的使用说明Unity内置的方法Start()方法MonoBehaviour.startConsole视图C#游戏开发快速入门大学霸

下面使用一个示例来说明,Unity内置方法Start()和Update()的使用。示例的操作步骤如下:

(1)打开脚本MyScript,为其添加下面的代码:

01     using UnityEngine;

02     using System.Collections;

03

04     public class MyScript : MonoBehaviour

05     {

06              private int frameCount = 0;

07              void Start()

08              {

09                        Debug.Log (“这是Start()里输出的信息”);

10              }

11              void Update()

12              {

13                        frameCount++;

14                       if(frameCount == 100)

15                       {

16                                 Debug.Log (“这是Update()里输出的信息”);

17                                 frameCount = 0;

18                       }

19              }

20     }

新添加的代码,分别为Start()和Update()添加了一条语句(09行)和多条语句(13~18行),实现的功能均是在Unity的Console视图里输出一行文本信息。读者可以从输出的信息中了解到,Start()和Update()的调用情况。

(2)运行游戏,这次观察的焦点不是Game视图,而是Console视图,输出的文本信息,如图4-7所示。

图4-7  Console视图的文本信息输出结果Unity内置的方法Start()方法MonoBehaviour.startConsole视图C#游戏开发快速入门大学霸

通过Unity提供的帮助文档,读者应该了解到,方法Start()是在游戏对象初始化的时候调用,且是在Update()前被调用。因此,Console视图中首先输出的是Start()方法里的文本信息,而后Update()方法才被调用,因此随后就输出了Update()方法里的文本信息。并且,由于Update()方法在每帧都会被调用,因此Update()方法里的文本信息会在游戏运行的过程中,持续输出。

提示:如果让Update()方法每帧都输出信息的话,Console视图很快就会被“刷屏”了。为了阻止这种现象的发生,脚本代码只是让Update()方法每100帧输出一次文本信息,但是Update()方法依然在每帧被调用Unity内置的方法Start()方法MonoBehaviour.startConsole视图C#游戏开发快速入门大学霸。

Comments are closed.