55555555
4444444
333333333
2222222
111111111111
MonoBehaviour 中實現了很多函數來驅動游戲
instantiate 創建 GameObject
Awake() & Start() 是初始化
Update、LateUpdate、FixeUpdate() 是更新邏輯
繼承MonoBehaviour
脚本之间的通信
对象销毁
如何更新逻辑
unity如何通过脚本来驱动游戏
脚本基础
luojikongzhi
如何更新逻辑
【脚本基础】:
Unity里可以使用C#和UnityScript;
在Unity里面凡是能挂在GameObject上的都是Component;
Script也可以作为一个Component;
Script要想挂在GameObject上就必须继承MonoBehaviour。
游戏是一种循环。
【Unity如何通过脚本驱动游戏】:
Instantiate()创建GameObject;
通过Awake()和Start()来做初始化;
Update,LateUpdate和FixedUpdate更新逻辑;
用OnGUI绘制UI;
OnCollisonEnter等进行物理计算;
OnPreCall等来控制渲染。
【如何更新逻辑】:
场景启动时调用所有脚本的Awake();
调用所有脚本的Start();
每一帧会调用一次Update;
所有脚本的Update调用完后,调用LateUpdate;
一帧中调用几次FixedUpdate。
Update和LateUpdate一帧只调用一次,FixedUpdate和时间相关,例如,目标跑60帧,每一帧会更新一次FixedUpdate;游戏性能不行,没有达到理想帧数(例如30帧),一帧会调用两次FixedUpdate。这样可以保证单位时间内做得更新频率相同。
【对象销毁】:
调用Destroy销毁GameObject;
销毁对象时脚本调用OnDestroy(析构)。
【脚本间的通信】:
通过GetComponent找到(同一物体上挂的)其他脚本;
通过GameObject.Find找到其他物体
Instantiate()创建GameOobject
通过Awake()和Start()来做初始化
Update,LateUpdate和FixedUpdate更新逻辑
执行逻辑的顺序
场景启动时调用所有脚本的Awake();
调用所有脚本的Start();
每一帧调用Update();
调用完所有脚本的Update()后调用LateUpdate()(每一帧调一次);
调用FixUpdate()(与时间相关);
念旧的人太多人
1111111
脚本基础:
Instantiate()创建GameOobject
通过Awake()和Start()来做初始化
Update,LateUpdate和FixedUpdate更新逻辑
Script要想挂在GameObject上必须继承MonoBehaviour
脚本间调用
通过GetComponment()找到同一个物体的其他脚本;
通过GameObject.Find()找到其他物体;
执行逻辑的顺序
场景启动时调用所有脚本的Awake();
调用所有脚本的Start();
每一帧调用Update();
调用完所有脚本的Update()后调用LateUpdate()(每一帧调一次);
调用FixUpdate()(与时间相关);
脚本基础。
脚本通信
GetComponment找到其他脚本
GameObject.Find来找其他物体
对象的校徽
Desotry 销毁GameObject
更新逻辑:
场景调用是调用所有的脚本的awake()
调用所有脚本的Start()
调用update(每一帧)
调用LateUpdate(Update完了调用,也是每一帧)
调用FIxUpdate 在固定的时间间隔执行,不受游戏帧率影响
script 可以作为gameobject的一个component script想要挂在gameobject上必须要继承monobehavior Instantiate()创建gameobject awake()和start()来做初始化 update, lastUpdate 和fixedUpdate更新逻辑 逻辑顺序:场景启动时调用所有脚本的awake(), 再调用所有脚本的start(), 接下来每一帧调用Update 和lastupdate, 最后按照时间调用fixupdate getComponent: 找到其他脚本 GameObject.find找到其他物体