分類:Unity、C#、VS2015 數組
建立日期:2016-04-16 函數
一、經常使用的C#數據類型 調試
這裏簡單介紹用Unity開發遊戲時,最經常使用的一些數據類型。 對象
(1)基本類型 blog
int、float、string、bool 繼承
(2)數組 遊戲
public string[ ] familyMembers = new string[ ]{"Greg", "Kate", "Adam", 事件
"Mia"} ; 開發
public GameObject[ ] carsInTheScene = GameObject.FindGameObjectsWithTag("car"); get
(3)List泛型列表
public List<string> list=new List<string>();
……
list.Add("a1");
二、其餘數據類型說明
(1)ArrayList
優勢是可存儲任意類型的數據列表,缺點是其效率沒有List泛型列表效率高。
public ArrayList arraylist=new ArrayList();
……
arrayList.Add(10);
arrayList.Add("abc");
(2)Hashtable
注意:即便將其聲明爲public,在Unity的檢視器中也不可見。因此若是使用它,通常將其聲明爲private,供腳本內部使用。
private Hashtable h=new Hashtable();
……
h.Add("playerName","aa");
h.Add("gender","male");
h.Add("age",20);
三、變量聲明時注意的問題
(1)聲明爲public的變量才能在檢視器(Inspector)中可見。
(2)聲明爲public的變量會在檢視器(Inspector)中自動變爲屬性名。
(3)避免使用含義不明確的變量名。例如:name、speed、score最好改成用playerName,carSpeed,opponentScore來代替,由於name看不出是誰的名字,玩家的?敵人的?若是是多個玩家、多個敵人更不明白是誰的名字了。
一、應該將腳本文件添加到哪
可將腳本文件添加到任何遊戲對象(GameObject)中。
GameObject是其餘遊戲對象的基類(GameObject繼承自Object類)。換言之,Unity中除了Object之外的全部其餘組件,都是從GameObject繼承的。
二、腳本執行的順序
Start():開始運行遊戲時調用一次,此時尚未調用Update()。
Update():每一幀都會調用一次,通常利用它更新場景參數。
LateUpdate():每一幀調用Update()後都會調用一次,通常利用它更新相機參數。
FixedUpdate():每通過一個固定的物理時間間隔都會調用一次,通常利用它更新成績、能量等參數。
Awake():開始運行遊戲時,在Start()以前調用一次。通常利用它初始化參數。
三、怎麼知道會自動調用哪些方法
在VS2015的腳本編輯狀態下,鼠標右擊選擇【Implement MonoBehabious】:
而後在彈出的窗口中勾選要添加的方法(這些都是Unity自動調用的方法):
也能夠一次選擇多個方法,選擇後單擊【OK】,VS2015就會自動生成相關的代碼。
四、哪一種寫法好
下面舉例解釋,雖然例子簡單到沒有任何意義,可是能讓你很快明白,特別是獲取組件時更是如此。
功能需求:定義並修改某個值(初始化),修改之後,後面一直都使用這個值。
笨的寫法(效率很是低):
public void Update()
{
int age = 25;
}
「笨」的緣由:這樣每一幀都會執行一次定義並賦值,致使效率很低。
應該是(只執行1次):
private int age;
public void Start()
{
age = 25;
}
MonoBehaviour是Unity中一個很是重要的類,它定義了基本的腳本行爲,全部的腳本類均須要從它直接或間接地繼承,腳本必然事件就是從MonoBehaviour繼承而來。
在VS2015中鼠標右擊MonoBehaviour類,而後選擇【轉到定義】可觀察該類的細節。
一、針對特定事件的響應函數
除了必然事件之外,MonoBehaviour還定義了對各類特定事件(例如鼠標在模型上單擊,模型碰撞等)的響應函數,這些函數名稱均以On做爲開頭。
下面是經常使用的針對特定事件的響應函數:
二、經過變量訪問組件
編寫腳本的目的是用來定義遊戲對象(GameObject)的行爲,所以會常常須要訪問繼承自遊戲對象(GameObject)的各類組件並設置組件參數。對於系統內置的經常使用組件,Unity提供了很是便利的訪問方式,只須要在腳本里直接訪問組件對應的成員變量便可,這些成員變量定義在MonoBehaviur中並被腳本繼承了下來。
下面是經常使用的組件及其對應的變量:
注意:若是對象不存在對應的組件,則該組件對應的變量值爲null。
在調試模式下(即:按播放按鈕)運行時,可直接在檢視器(Inspector)中修改屬性的值,調試結束後(即:再次按播放按鈕)這些屬性的值會自動還原爲原來的值。
經過這種方式,沒必要每次都編譯運行,就能夠方便地給腳本中的變量找到合適的初始值。找到後結束調試,而後再修改腳本中變量的初始值就好了。