Unity3D 使用C#注意事項:
1.繼承於MonoBehaviour
public class NewBehaviourScript:MonoBehaviour{...} //Unity C#腳本建立時會自動產生
2.在Awake或Start函式中做初始化
3.類別名稱需與檔案名稱相同
4.Coroutines(協同程序) 相較於C#有不同的語法
C#中有所謂的Thread來實現多執行緒的操作,但在Unity3D中有些元素是不能操作的,
這個時候就可以用Coroutines來實現Thread,做法是使用StartCoroutine("function_name")來完
成,其中function_name的function以IEnumerator來實做,範例如下:
StartCoroutine("func"); //也可以寫成StartCoroutine(func());
IEnumerator func(){
while(true){
yield return 1; //數字1是畫面更新一次就返回一次,或是寫成
// yield return new WaitForSeconds(0.5f); 每0.5秒返回一次
}
}
5.不要使用命名空間(namespace)
6.成員變數會條列在Inspector中
當所寫的Script賦予某物件後,Script的成員變數會條列顯示在Inspector中,但在Normal模式
只會條列宣告為public的變數,只有在Debug Mode才會將宣告為private,protected的變數顯
示出來(在Inspector頁籤上在mouse右鍵即可改變模式)
7.避免在constructor(建構函式)中初始化變數
永遠不要在繼承於MonoBehaviour Script的建構函式初始化變數,要在Awake()或Start()中初
始化變數,除非你的Script是繼承至ScripttableObject,才可以在constructor中初始化變數
1.繼承於MonoBehaviour
public class NewBehaviourScript:MonoBehaviour{...} //Unity C#腳本建立時會自動產生
2.在Awake或Start函式中做初始化
3.類別名稱需與檔案名稱相同
4.Coroutines(協同程序) 相較於C#有不同的語法
C#中有所謂的Thread來實現多執行緒的操作,但在Unity3D中有些元素是不能操作的,
這個時候就可以用Coroutines來實現Thread,做法是使用StartCoroutine("function_name")來完
成,其中function_name的function以IEnumerator來實做,範例如下:
StartCoroutine("func"); //也可以寫成StartCoroutine(func());
IEnumerator func(){
while(true){
yield return 1; //數字1是畫面更新一次就返回一次,或是寫成
// yield return new WaitForSeconds(0.5f); 每0.5秒返回一次
}
}
5.不要使用命名空間(namespace)
6.成員變數會條列在Inspector中
當所寫的Script賦予某物件後,Script的成員變數會條列顯示在Inspector中,但在Normal模式
只會條列宣告為public的變數,只有在Debug Mode才會將宣告為private,protected的變數顯
示出來(在Inspector頁籤上在mouse右鍵即可改變模式)
7.避免在constructor(建構函式)中初始化變數
永遠不要在繼承於MonoBehaviour Script的建構函式初始化變數,要在Awake()或Start()中初
始化變數,除非你的Script是繼承至ScripttableObject,才可以在constructor中初始化變數
留言
張貼留言