一、Mono Develop腳本編輯器介紹:
Unity3D目前支援三種語言的腳本程式,包括C# JavaScript Boo, 在一個遊戲中開發者可以使用一種或者使用多種語言來實作腳本的控制。
三種不同的語言其實效率是相當的,最後都會編譯成Unity3D内置的中間代碼,目前國内用C#的占大多數。
二、項目工程分層設計:
Senes: 存放場景。 Scripts 存放腳本 Rwsources 資源包 Texture 貼圖 Materials: 材質
Audios 聲音 Models 模型
初始化不要放到構造函數中,而是放到Atart()方法中。
放到遊戲對象中的腳本(執行個體化) 可以在Insepector 中修改屬性, Get/set 寫法屬性不被識别, 直接Public 字段就能當屬性用,不寫修飾符就
是私有private.
三、動态對象
1、建立、克隆、銷毀遊戲對象
GameObject cube=Ganmeobject.CreatePrimitive(PrimitiveType.Cube);
cube.name="cube1";//設定名字
cube.renderer.material.color=Color.red;
2、動态克隆對象
GameObject obj=(GameObject)Instantiate(cube);
3、動态銷毀對象
Destroy(obj,1);
4、給遊戲物體添加名為FoobarScript腳本
GameObject.AddComponent(“FoobarScript”);
5、給遊戲對象添加剛體
Rigidbody rb=GameObject.AddConmponent("Rigdbody");
6、給遊戲物體添加球體碰撞器
SphereCollider sc GameObject.AddComponent("SphereCollider");
7、通過名稱來查找
GameObject player=new GameObject("Player");
GameObject go=GanmeObject.Find("Player");
8、通過tag标簽擷取單個遊戲對象
GameObject go=GanmeObject.FindWithTag("Player");
GameObject go=GanmeObject.FindGameObjectWithTag("Player");
9、通過遊戲标簽擷取多組遊戲對象
GameObject[] go=GameObject.FindGameObjectWithTag("Player");
二、協同程式
1、Coroutine
協同程式:即在主程式運作時同時開啟另外一個邏輯處理來協同目前程式的執行。
2、Yield
Yield語句是一種特說類型的return語句,它可以確定函數在下一次被執行時,不是從頭開始,而是從yield語句開始。
例如:void Start()
{
print("Start開始");
StartCoroutine((Do));
print("Do調用後");
}
IEnumerator Do()
{
print("Do開始");
yield return new WaitForSecond(3.0f);
print ("暫停3秒後");
}
消息傳遞函數:
GameObject.SenMessage: 向自身的腳本中發送消息。
GameObject.BroadcastMessage向自身及物體的腳本發送資訊。
GameObject.SenMessageUpwards: 向自身及父物體中發送消息。
Sphere:
void Start ()
{
gameObject.SendMessageUpwards ("Do","向父對象發出資訊");
}
void Do(string message)
{
print (message);
}
歡迎來到我們的狗刨網。我們的網址是http://www.gopedu.com/。