Unity3D實習生面試題總結-Unity引擎相關


Unity組件刪除和添加

//添加
GameObect.AddComponent<ScriptName>();
//刪除
Destroy(GameObect.GetComponent<ScriptName>());

 

Unity3d獲取游戲對象的幾種方法

GameObject.Find();
Tranform.Find();
GameObject.FindGameObjectWithTag();

 

Unity3d中的碰撞器和觸發器的區別

碰撞器有碰撞的效果,IsTrigger=false,可以調用OnCollisionEnter/Stay/Exit函數; 

觸發器沒有碰撞效果,IsTrigger=true,可以調OnTriggerEnter/Stay/Exit函數。

 

Unity3d腳本聲明周期

First Scene Load 第一個場景加載

Awake:這個函數是在Start函數之前以及預制物體實例化后被調用。

OnEnable:(僅在對象激活狀態下可用):這個函數在對象可用之后被調用。

Before the first frame update 第一幀更新之前

Start:如果腳本實例化被啟用,則Start函數在第一幀更新之前被調用。

In between frames 執行期間

FixedUpdate: FixedUpdate()比Update()函數調用的更頻繁。當幀率比較低時,它每幀被調用多次,如果幀率比較高,它有可能就不會被調用。所有的物理計算和更新都立即發生在FixedUpdate()之后。當在FixedUpdate()中計算物體移動時,你不需要乘以Time.deltaTime。因為FixedUpdate()是基於可靠的定時器的,不受幀率的影響。

Update() 每幀調用一次。這是幀更新的主要函數。

LateUpdate: 在Update()執行后,LateUpdate() 也是每幀都被調用。在Update()中執行的任何計算都會在LateUpdate()開始之前完成。LateUpdate()的一個常見應用就是第三人稱控制器的相機跟隨。如果你把角色的移動和旋轉放在Update()中,那么你就可以把所有相機的移動旋轉放在LateUpdate()。這是為了在相機追蹤角色位置之前,確保角色已經完成移動。

Coroutine 協同程序(協程)

yield:協程在所有的Update函數於下一幀調用后繼續執行。

yield WaitForSeconds(2):在一個指定的時間延遲后繼續執行,在所有的Update函數被調用之后。

yield WaitForFixedUpdate():在所有腳本上所有的FixedUpdate被調用之后繼續執行。

When the Object is Destroyed 當對象被銷毀時

OnDestroy: 這個函數在所有幀更新之后被調用,在對象存在的最后一幀(對象將銷毀來響應Object.Destroy或關閉一個場景)。

When Quitting 當退出時

OnApplicationQuit:在應用退出之前所有的游戲對象都會調用這個函數。在編輯器中當用戶停止播放時它將被調用。在webplayer中,當網頁關閉時被調用。

OnDisable: 當行為不可用或非激活時,這個函數被調用。

 

Unity物體之間的通信

委托和事件的用法

http://www.cnblogs.com/SkySoot/archive/2012/04/05/2433639.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM