Unity中的脚本
新建脚本
C#脚本的后缀名是*.cs。
我们可以在Project面板中右键->“Create”->"C# Scripte"创建一个新的C# Script脚本。
最好将新的脚本放在一个恰当的文件管理系统中,比如放置在Scripts文件夹中。
新建一个cs文件后,双击即可进入Visual Studio编辑脚本。可以看到新的文件已经引用了System.Collections、System.Collections.Generic以及UnityEngine这几个命名空间,我们还可以看到该脚本中已经自动声明了一个类,类名和文件名相同,且继承自MonoBehaviour。
如果发现打开cs文件后,visual studio显示该文件为杂项文件,进而不能产生联想,也无法调用其它文件中定义的内容,可以在主界面的菜单栏中的"Edit"->“Preferences”->“External Tools”->"External Script Editor"选项修改为当前的Visual Studio版本。
尝试使用Debug
Debug.Log(Object obj); Debug.Lob(String str);
用于在Console面板输出调试信息。通过参数输入Object后,函数调用了obj.ToString,并将返回的字符串输出到Console。Unity中常见的类型输出的内容如下:
string:输出本身。
int/float/double/uint等数值类型:输出数值。
GameObject:输出GameObject.name。
Vector2和Vector3:输出(x,y,z)格式的向量。
Color:输出(r,g,b,a)格式的向量。
Debug.LogWarning(Object obj);
用于在Console面板输出警告信息。
Debug.LogError(Object obj);
用于在Console面板输出错误信息。
在C#中可以使用”+“连接两个字符串,但是众所周知任何语言中使用”+“连接字符串效率都不高。解决这个问题,除了使用C#本身的String.Format()外,Unity在Debug类中提供了以下三个函数:
Debug.LogFormat(); Debug.LogWarningFormat(); Debug.LogErrorFormat();
它们的使用方法和String.Format()一致,示例如下:
Debug.LogFormat("We have {0} boxes, and the first one is at {2}", boxes.count, boxes[0].transform.position);
任务
- 新建一个cs脚本命名为HelloWorld。
- 打开cs脚本,在Start()函数体内写上如下代码:
Debug.Log("Hello world!");
- 在Update()函数体内写上如下代码:
Debug.LogFormat("The game has runned for {0} seconds!",Time.time);
- 进入Unity引擎,在Hierarchy面板中新建一个空GameObject,命名为Debuger。
- 选中新建的Debuger,同时在Project面板中找到HelloWorld.cs脚本,将它拖动到Inspector面板中,使其附加在Debuger上。
- 开启试玩,观察Console面板的输出信息,猜想Start和Update函数的作用。
Unity中的数学类
Unity中的随机数
Unity的UnityEngine.Random类重写了System.Random,对常用的Unity类型提供了额外的随机函数。