《Unity Manual》閱讀筆記(二):Scripting
阿新 • • 發佈:2018-12-29
找尋Component或者GameObject總結:
- 找Component:
gameObject.GetComponent<RigidBody>()
- 找子節點中的GameObject:
transform.Find("Gun")
- 找任意的GameObject:
GameObject.Find("Gun"),GameObject.FindWithTag("Player"), GameObject.FindGameObjectsWithTag("Enemy")
- 找Component:
MonoBehaviour中的event function:
Update(), Awake(), OnGUI(), OnCollisionEnter(), OnTriggerEnter()
Time.deltaTime:過去一幀實際經過的時間,若在FixedUpdate()中呼叫則等同於Time.fixedDeltaTime。
Time.fixedDeltaTime: 固定的delta時間,用於物理引擎。
Time.timeScale: 設定這個值會加快遊戲的整體速度,設為0時暫停。
Instantiate():複製一個GameObject。
Destroy(): 銷燬GameObject。
coroutine: 可以分幀執行的函式。作用是將耗時操作分幀執行。
WaitForSeconds():不立即從下一幀繼續執行,而是有一個延遲。
event function的執行順序(詳見下圖):
- 初始化: Awake -> OnEnable -> Start
- 每一幀:FixedUpdate -> OnTriggerXXX -> OnMouseXXX -> Update -> yield null -> LateUpdate -> OnRenderObject -> OnGUI
- 結束: OnDisable -> OnDestroy
event system: 基於input(鍵盤、滑鼠、觸控等)來發送event到各種物件上,需要在scene中間新增EventSystem元件。
Raycaster:用於引導event傳送到哪個物件上。
如何實現Button點選事件:
- 直接在Inspector下面OnClick處添加回調函式。
- 通過程式碼:
button.onClick.AddListener(functionName)
。