分类:Unity、C#、VS2015 数组
建立日期:2016-04-16 函数
一、经常使用的C#数据类型 调试
这里简单介绍用Unity开发游戏时,最经常使用的一些数据类型。 对象
(1)基本类型 blog
int、float、string、bool 继承
(2)数组 游戏
public string[ ] familyMembers = new string[ ]{"Greg", "Kate", "Adam", 事件
"Mia"} ; 开发
public GameObject[ ] carsInTheScene = GameObject.FindGameObjectsWithTag("car"); get
(3)List泛型列表
public List<string> list=new List<string>();
……
list.Add("a1");
二、其余数据类型说明
(1)ArrayList
优势是可存储任意类型的数据列表,缺点是其效率没有List泛型列表效率高。
public ArrayList arraylist=new ArrayList();
……
arrayList.Add(10);
arrayList.Add("abc");
(2)Hashtable
注意:即便将其声明为public,在Unity的检视器中也不可见。因此若是使用它,通常将其声明为private,供脚本内部使用。
private Hashtable h=new Hashtable();
……
h.Add("playerName","aa");
h.Add("gender","male");
h.Add("age",20);
三、变量声明时注意的问题
(1)声明为public的变量才能在检视器(Inspector)中可见。
(2)声明为public的变量会在检视器(Inspector)中自动变为属性名。
(3)避免使用含义不明确的变量名。例如:name、speed、score最好改成用playerName,carSpeed,opponentScore来代替,由于name看不出是谁的名字,玩家的?敌人的?若是是多个玩家、多个敌人更不明白是谁的名字了。
一、应该将脚本文件添加到哪
可将脚本文件添加到任何游戏对象(GameObject)中。
GameObject是其余游戏对象的基类(GameObject继承自Object类)。换言之,Unity中除了Object之外的全部其余组件,都是从GameObject继承的。
二、脚本执行的顺序
Start():开始运行游戏时调用一次,此时尚未调用Update()。
Update():每一帧都会调用一次,通常利用它更新场景参数。
LateUpdate():每一帧调用Update()后都会调用一次,通常利用它更新相机参数。
FixedUpdate():每通过一个固定的物理时间间隔都会调用一次,通常利用它更新成绩、能量等参数。
Awake():开始运行游戏时,在Start()以前调用一次。通常利用它初始化参数。
三、怎么知道会自动调用哪些方法
在VS2015的脚本编辑状态下,鼠标右击选择【Implement MonoBehabious】:
而后在弹出的窗口中勾选要添加的方法(这些都是Unity自动调用的方法):
也能够一次选择多个方法,选择后单击【OK】,VS2015就会自动生成相关的代码。
四、哪一种写法好
下面举例解释,虽然例子简单到没有任何意义,可是能让你很快明白,特别是获取组件时更是如此。
功能需求:定义并修改某个值(初始化),修改之后,后面一直都使用这个值。
笨的写法(效率很是低):
public void Update()
{
int age = 25;
}
“笨”的缘由:这样每一帧都会执行一次定义并赋值,致使效率很低。
应该是(只执行1次):
private int age;
public void Start()
{
age = 25;
}
MonoBehaviour是Unity中一个很是重要的类,它定义了基本的脚本行为,全部的脚本类均须要从它直接或间接地继承,脚本必然事件就是从MonoBehaviour继承而来。
在VS2015中鼠标右击MonoBehaviour类,而后选择【转到定义】可观察该类的细节。
一、针对特定事件的响应函数
除了必然事件之外,MonoBehaviour还定义了对各类特定事件(例如鼠标在模型上单击,模型碰撞等)的响应函数,这些函数名称均以On做为开头。
下面是经常使用的针对特定事件的响应函数:
二、经过变量访问组件
编写脚本的目的是用来定义游戏对象(GameObject)的行为,所以会常常须要访问继承自游戏对象(GameObject)的各类组件并设置组件参数。对于系统内置的经常使用组件,Unity提供了很是便利的访问方式,只须要在脚本里直接访问组件对应的成员变量便可,这些成员变量定义在MonoBehaviur中并被脚本继承了下来。
下面是经常使用的组件及其对应的变量:
注意:若是对象不存在对应的组件,则该组件对应的变量值为null。
在调试模式下(即:按播放按钮)运行时,可直接在检视器(Inspector)中修改属性的值,调试结束后(即:再次按播放按钮)这些属性的值会自动还原为原来的值。
经过这种方式,没必要每次都编译运行,就能够方便地给脚本中的变量找到合适的初始值。找到后结束调试,而后再修改脚本中变量的初始值就好了。