【正文】
在保存的時候Unity將花費一點時間來編譯所有腳本如果Unity還在編譯。 function OnTriggerEnter c : Collider if enabled true function OnTriggerExit c : Collider if enabled false 。一個比較好的解決辦法是禁用行為直到玩家靠近。內置數(shù)組有一個固定的尺寸但大多數(shù)時候你事先知道了最大的大小在可以只填寫了以后。那么在這種情況下foo將在編譯時產(chǎn)生一個錯誤 pragma strict function Start var foo GetComponentMyScript 另一個優(yōu)化是組件緩存。通過回到動態(tài)類型編寫JavaScript代碼很簡單。其實上沒有理由一定要在繼續(xù)自MononBehaviour類的構造函數(shù)中寫任何代碼。 。 概覽用C編寫腳本 除了語法使用C或者Boo編寫腳本還有一些不同。 private var state 0 function Update if state 0 // 做步驟0 state 1 return if state 1 // 做步驟1 state 2 return // … 更方便的是使用yield語句。包含所有附加的腳本和整個層次。 如果你設置變量的類型為一個組件類型例如Transform Rigidbody Collider任何腳本名稱等等然后你可以在檢視面板中通過拖動一個游戲物體來設置它們。 function Start // 找到場景中附加了OtherScript的任意一個游戲物體 var other : OtherScript FindObjectOfTypeOtherScript 概覽向量 Unity使用Vector3類同一表示全體3D向量3D向量的不同組件可以通過想xy和z成員變量訪問。 function Start // 按名稱 var go // 按標簽 var player 。 應用我們所學你可以使用GetComponent找到任何附加在同一游戲物體上的腳本和組件請注意要使用下面的例子能夠工作你需要有一個名為OtherScript的腳本其中包含一個DoSomething函數(shù)。 概覽訪問其他組件 組件被附加到游戲物體附加Renderer到游戲物體使它在場景中渲染附加一個Camera使它變?yōu)橄鄼C物體所有的腳本都是組件因為它們能被附加到游戲物體。 注意文檔的這個部份假設你是用Javascript參考用C編寫獲取如何使用C和Boo編寫腳本的信息。Unity3D腳本中文教程 你也能定義事件句柄它們的名稱都以On開始例如OnCollisionEnter為了查看完整的預定義事件的列表參考MonoBehaviour 文檔。 最常用的組件可以作為簡單成員變量訪問 Component 可如下訪問 Transform transform Rigidbody rigidbody Renderer renderer Camera camera only on camera objects Light light only on light objects Animation animation Collider collider …等等。OtherScript腳本必須與下面的腳本附加到相同的物體上。 一些事件消息在事件包含詳細信息。 var aPosition : Vector3 1 1 1 你也能夠使用Vector3構造函數(shù)來同時初始化所有組件。 var enemy : Transform function Update if lt 10 printquotI sense the enemy is nearquot 你也可以創(chuàng)建私有成員變量。它以你期望的方式保持引用。yield語句是一個特殊類型的返回這個確保在下次調用時該函數(shù)繼續(xù)從該yield語句之后執(zhí)行。最需要注意的是 所有的行為腳本必須從MonoBehaviour繼承直接或間接。 Coroutines必有一個IEnumerator返回類型并且yield使用yield return… 而不是yield… using using Un