關於unity中的類

最近看一些代碼,經常需要在一個腳本中調用其他腳本中的屬性或方法,有兩種調用方法:

一種直接用ClassName.method(),

另一種用ClassName cn=(ClassName)FindObjectOfType (typeof(ClassName)); cn.method();

這兩種方法區別:

第一種要調用的方法或屬性需要聲明爲static,否則編譯不通過。這個類沒有實例化,只是放在遊戲中單獨的一塊內存中,當然Awake(), Start()等相關函數也不會自動執行。

第二種要調用的方法或屬性不能聲明爲static,否則編譯不通過。這個類被遊戲對象綁定了,已經實例化,代碼存放在被綁定的遊戲對象區域,所調用的屬性或方法跟這個對象有關。


如在遊戲中如需保存一些全局設置,要麼直接寫一個腳本,不跟任何對象綁定,將腳本中變量聲明爲非static;

或者創建一個空對象,然後綁定一個腳本,腳本中的變量聲明爲static。

不知道這兩種方法有木有區別,歡迎補充。微笑

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章