unity3d 基础介绍(脚本生命周期)

转载自以下文章:
https://blog.csdn.net/VRunSoftYanlz/article/details/78881752 Unity面向组件开发
https://blog.csdn.net/huutu/article/details/46645743 Unity3d 帧率设置

MonoBehaviour类常用方法:
初始阶段:Awake()、OnEnable()、Start()
物理阶段:FixedUpdate()、OnTriggerXX,OnCollisionXX
输入阶段:OnMouseXX
游戏逻辑:Update()、LateUpdate()
场景渲染:OnBecameVisible()、OnBecameInvisible()、OnGUI()
结束阶段:OnDisable()、OnDestroy()、OnApplicationQuit()

Awake()、Start()只执行一次。OnEnable()游戏对象或者当前脚本启用时调用,每次显示对象都会调用1次。

FixedUpdate()执行频率由Project Setting=>Time=>Fixed Timestep决定,如果Fixed Timestep=1表示1秒执行1次,默认Fixed Timestep=0.02秒,表示0.02秒执行一次,即1秒50次。

Update()每帧执行一次。使用Application.targetFrameRate设置帧数,如果 Application.targetFrameRate = 1表示1秒执行1帧,但前提是必须关闭垂直同步,在Project Setting中设置,如果垂直同步是打开状态,代码设置帧数将会失效,垂直同步一共3个选项,不使用,使用等级1(1秒大概60帧),使用等级2(1秒大概30帧),默认勾选使用等级1。
LateUpdate():Update()执行一定会执行LateUpdate()。2者频率完全相同。

OnBecameVisible() 当可见: 当Mesh Renderer在任何相机上可见时调用,每次显示对象都会调用1次。
OnBecameInvisible() 当不可见: 当Mesh Renderer在任何相机上不可见时调用,每次隐藏对象都会调用1次。
OnGUI() 渲染: 渲染和处理GUI事件时调用,每帧大概2次,大概是Update()调用次数的2倍。

OnDisable() 当不可用:对象隐藏或脚本隐藏或对象被删除时调用。
OnDestroy() 当销毁: 脚本被删除或对象被删除时调用。
OnApplicationQuit() 当程序结束: 应用程序退出时被调用。

其他内容:
gameObject.SetActive(false);//游戏对象禁用
enabled = false;//脚本禁用

宏观控制类:
Application:应用程序类
Input: 输入类
GUI:图形输出类
Physics:物理引擎类
Resources:资源类
Time:时间类
Time类里面time、deltaTime、fixedTime、fixedDeltatime的区别:
time是从程序开始执行到现在的时间,fixedTime表示FixedUpdate已经执行的时间。
fixedDeltatime是一个固定的时间增量(不论在Update还是FixedUpdate中都一样),即FixedUpdate的执行速度。
deltaTime是在Update中执行一次的时间,也就是帧率,这个值不是固定的,会一直跳动。

猜你喜欢

转载自blog.csdn.net/tran119/article/details/81507922
今日推荐