常用腳本事件:
Update:每幀調用一次
Start:在第一次Update執行前調用
Awake:腳本執行個體在建立時調用
FixedUpdate:每個固定實體時間間隔調用一次
LateUpdate:每幀調用一次,在Update之後
MonoBehaviour類:
MonoBehaviour類是uniyt中非常重要的類,定義了基本的腳本行為,所有腳本類均需要從它直接或間接繼承。MonoBehaviour還定義了對各種特定事件的響應函數,這些函數名均以On作為開頭,下面是一些常用的事件響應函數。
OnMouseEnter:滑鼠移入GUI控件或碰撞體時調用
OnMouseOver:滑鼠停留~~~
OnMouseExit:滑鼠移除~~~
OnMouseDown:滑鼠按下~~~~
OnMouseUp:滑鼠釋放~~~
OnTriggerEnter:當其他碰撞體進入觸發器時調用
OnTriggerExit:~~離開~~
OnTriggerStay:~停留~~~
OnCollisionEnter:當碰撞體或者剛體與其他碰撞體或者剛體接觸時調用
OnCollisionExit:~~~~~~離開時~
OnCollisionStay:~~~~~~保持接觸時~
OnControllerColliderHit:當控制器移動時與碰撞體發生碰撞時調用
OnBecameVisible:對于任意一個相機可見時調用
OnBecameInvisible:對于任意一個相機不可見時調用
OnEnable:對象啟用或者激活時調用
OnDisable:對象禁用或者取消激活時調用
OnDestory:腳本銷毀時調用
OnGUI:渲染GUI和處理GUI消息時調用
腳本群組件互動:
一個對象由若幹個元件組成,通常需要利用腳本來通路對象的各種元件并設定元件的參數。對于系統内置的常用組建,Unity提供了非常便利的通路方式,隻需要在腳本裡通路元件對應的成員變量即可,這些成員變量定義在MonoBehaviour中并被腳本繼承了下來。
通路場景中的對象:
在unity3d開發中,腳本不但需要通路腳本所在對象的元件,還經常需要通路其他的對象:
1.通過名稱來查找:使用函數GameObject.Find,如果場景中存在指定名稱的對象,則傳回該對象的引用,否則傳回null,如果存在多個同名的對象,則傳回第一個對象的引用。
GameObject cube = GameObject.Find("MyCube");
2.通過标簽來查找:GameObject.FindWithTag,如果場景中存在指定标簽的對象,則傳回該對象的引用,否則傳回null,如果多個對象使用同一個标簽,則傳回第一個對象的引用。
注意:與GetComponent一樣,GameObject.Find和GameObject.FindWithTag也是比較耗時的參數,是以不建議在update函數中調用它們,而是在初始化中查找一次後儲存在變量中。
協同程式(Coroutine):
Coroutine也成為協同程式或協程,可以和主程并行運作,和多線程類似,但是在任一制定時刻隻會有一個協同程式在運作,别的協同程式則會挂起。可以用來實作讓一段程式等待一段時間後繼續運作的效果。
協同程式(Coroutine)的相關函數如下:
StartCoroutine:啟動一個協同程式
StopCoroutine:停止一個協同程式
StopAllCoroutine:終止所有協同程式
WaitForSeconds:等待若幹秒。
WaitForFixedUpdate:等待知道下一次FiexdUpdate調用。
更多unity2018的功能介紹請到paws3d爪爪學院查找。