Unity常用API方法与类

一、事件函数(生命周期函数)

1. Reset()

调用情况:此函数只能在编辑器模式下(不运行时)调用;

调用时间:当脚本第一次挂载到对象身上或者使用了Reset命令之后调用;

调用次数与作用:会调用一次,来初始化脚本的各个属性,Reset最常用于在检视面板中提供良好的默认值。

2. Awake()

调用情况:

(1)在加载场景时,初始化包含脚本的激活状态的 GameObject时;

(2)GameObject从非激活状态转变为激活状态时;

(3)在初始化使用Instantiate创建的GameObject之后;

调用时间、次数与作用:

在脚本实例的生存期内,Unity仅调用Awake一次。脚本的生存期持续到包含它的场景被卸载为止。Unity调用每个GameObject的Awake的顺序是不确定的,人为干涉(即设计)来保证程序的正确性和稳定性。Awake来代替构造函数进行初始化,在Unity这里,组件的初始化不适用构造函数。

3. OnEnable()

调用情况:

(1)游戏物体被激活;

(2)脚本组件被激活;

调用时间、次数与作用:

每次游戏物体或者脚本被激活都会调用一次;重复赋值;变为初始状态;

4. Start()

调用情况:

(1)游戏物体被激活;

(2)脚本组件被激活;

调用时间、次数与作用:

在脚本实例激活时,在第一帧的Update之前被调用,在Awake之后执行,方便控制逻辑的前后调用顺序。

5. Update()

调用情况:

(1)游戏物体被激活;

(2)脚本组件被激活;

调用时间、次数与作用:

每帧调用,是最常用函数;每秒调用60次左右(根据当前电脑的性能和状态);

实时更新数据,接受输入数据。

6. LateUpdate()

调用情况:

(1)游戏物体被激活;

(2)脚本组件被激活;

调用时间、次数与作用:

LateUpdate在调用所有Update函数后调用,每秒调用60次左右,安排脚本的执行顺序,比如摄像机跟随,一定是人物先移动了,摄像机才会跟随。

7. OnDisable()

调用情况:

(1)游戏物体被禁用;

(2)脚本组件被禁用;

(3)游戏物体被销毁;

调用时间、次数与作用:

满足调用情况时即时调用一次,用于一些对象的状态重置,资源回收与清理。

8. OnApplicationQuit()

调用情况:

(1)在程序退出之前所有的游戏对象都会调用这个函数;

(2)在编辑器中会在用户终止播放模式时调用;

(3)在网页视图关闭时调用;

调用时间、次数与作用:

满足调用情况时即时调用一次,用于处理一些游戏退出后的逻辑。

9. OnDestroy()

调用情况:

(1)场景或游戏结束;

(2)停止播放模式将终止应用程序;

(3)在网页视图关闭时调用;

(4)当前脚本被移除;

(5)当前脚本挂载到的游戏物体被删除;

调用时间、次数与作用:

满足调用情况时即时调用一次,用于一些游戏物体的销毁。

二、游戏物体

1. 创建方式

(1)使用构造函数(声明+实例化),创建一个空的游戏对象;

GameObject myGo=new GameObject("MyGameObject");

(2)根据现有的预制体(游戏物体)资源或者游戏场景已有的游戏物体来实例化;

GameObject.Instantiate(grisGo);

(3)使用特别的API创建一些基本的游戏物体类型(原始几何体)

GameObject.CreatePrimitive(PrimitiveType.Plane);

2.游戏物体的查找和获取

a.有引用

Debug.Log("当前游戏物体的状态是:"+gameObject.activeInHierarchy);

Debug.Log("当前游戏物体的状态是:"+gameObject.activeSelf);

b.没有直接引用(这时的游戏物体必须是激活状态)

(1)通过名称查找

GameObject mainCameraGo=GameObject.Find("Main Camera");

(2)通过标签查找

GameObject mainCameraGo=GameObject.FindGameObjectWithTag("MainCamera");

(3)通过类型查找

Script script=GameObject.FindObjectOfType

你可能感兴趣的:(Unity3D,unity,游戏引擎)