初步了解了下unity,unity的使用,以及場景的布局,UI,以及用C#做一些簡單的邏輯。好記性不如爛筆頭,一些關(guān)鍵幀還是記起來比較好,哈哈,不然可能轉(zhuǎn)瞬即逝了。
一:MonoBehaviour類的初始化
1, Instantiate()創(chuàng)建GameObject
2, 通過Awake()和Start()來做初始化
3, Update、LateUpdate,和FixedUpdate來更新邏輯
4, 用OnGUI繪制UI
5, OnCollisonEnter等進(jìn)行物理運(yùn)算
6, OnPreCall等來控制渲染
二:導(dǎo)航網(wǎng)格的設(shè)置
1. 設(shè)置導(dǎo)航網(wǎng)格
2. 設(shè)置Nav Mesh Agent
3. 調(diào)用Nav Mesh Agent的方法路徑
三:如何更新邏輯
1. 場景啟動時調(diào)用所有腳本的Awake()
2. 調(diào)用所有腳本的start()
3. 調(diào)用Update(每一幀調(diào)用一次Update())
4. 調(diào)用LateUpdate(所有的update調(diào)用完之后再調(diào)用LateUpdate)
5. 調(diào)用FixedUpdate
PS:update跟當(dāng)前平臺的幀數(shù)有關(guān),而FixedUpdate是真實(shí)時間,所以處理物理邏輯的時候要把代碼放在FixedUpdate而不是Update。
Update是在每次渲染新的一幀的時候才會調(diào)用,ixedUpdate是在固定的時間間隔執(zhí)行,不受游戲幀率的影響。
FixedUpdate的時間間隔可以在項(xiàng)目設(shè)置中更改,點(diǎn)擊 Edit - Project Setting - time找到 Fixed timestep,就可以修改了。
四:腳本間的通訊
1. GetComponment可以找到同一個物體上面掛著的其他的腳本。
2. GameObject.Find來找到其他物體。
3. SendMessage來
4,有一個串口通信類 SerialPortReciever。
腳本之間的通信有幾種:
1.利用在腳本A中定義對外接口函數(shù),然后在腳本B中找到A所在的對象,再找到腳本A,進(jìn)而調(diào)用里面的對外接口函數(shù),這個方法在我的《unity3D NGUI中button響應(yīng)事件實(shí)現(xiàn)》這篇文章中有仔細(xì)說明,可以參考。
2.還有一個是利用SendMessage的方法來實(shí)現(xiàn)腳本互相通信。
也是,首先在A腳本中編寫對外接口函數(shù),如下所示:
using UnityEngine;
using System.Collections;
public class A : MonoBehaviour {
public void Show_nunber(int n)
{
print("num: " + n );
}
}
然后在腳本B中利用SendMessage機(jī)制調(diào)用腳本A里面的Show_number函數(shù)。
如下:
using UnityEngine;
using System.Collections;
public class B : MonoBehaviour {
public GameObject Obj;//A腳本綁定在一個物體上的時候,再把腳本B拖拽到這個GameObject
void Start ()
{
Obj.SendMessage("Show_number","10");//相當(dāng)于調(diào)用腳本B里面的函數(shù),第一個參數(shù)是函數(shù)名,第二個傳遞的整型參數(shù)
}
}
五:部分方法筆記
1,Desotry來銷毀一個GameObject
2,Collider碰撞
3,Rigidbod控制物體移動
4,Resume()運(yùn)行
5,profabs 模板
更多關(guān)于“unity培訓(xùn)”的問題,歡迎咨詢千鋒教育在線名師。千鋒教育多年辦學(xué),課程大綱緊跟企業(yè)需求,更科學(xué)更嚴(yán)謹(jǐn),每年培養(yǎng)泛IT人才近2萬人。不論你是零基礎(chǔ)還是想提升,都可以找到適合的班型,千鋒教育隨時歡迎你來試聽。