我想使用這段代碼
GameObject mapOutline = new GameObject();
LineRenderer top = mapOutline.AddComponent<LineRenderer>()。
LineRenderer right = mapOutline.AddComponent<LineRenderer>();
LineRenderer bottom = mapOutline.AddComponent<LineRenderer>();
LineRenderer left = mapOutline.AddComponent<LineRenderer>()。
但是我不能在游戲物件初始化的同時添加這些組件,我得到的錯誤是 "一個欄位初始化器不能參考非靜態欄位、方法或屬性'ChooseGameMode.mapOutline'" 那么,有沒有一種方法可以在創建游戲物件時已經包含這些組件?我知道我可以通過unity編輯器中已經存在的物件來做到這一點,并在那里添加組件,但我寧愿在代碼中創建這一切。
uj5u.com熱心網友回復:
正如我在評論中提到的,我相信你所描述的錯誤是在你試圖在類的欄位初始化器或構造器中呼叫非執行緒安全的方法時發生的。更具體地說,你試圖呼叫的方法在你試圖呼叫它們時還不存在。要解決這個問題,只需將你正在進行的方法呼叫轉移到一個函式中。你的代碼可以是這樣的:
public class ChooseGameMode : MonoBehaviour
{
GameObject mapOutline。
線條渲染器 top, right, bottom, left;
private void Awake()
{
mapOutline = new GameObject()。
top = mapOutline.AddComponent<LineRenderer>()。
右 = mapOutline.AddComponent<LineRenderer>();
bottom = mapOutline.AddComponent<LineRenderer>();
left = mapOutline.AddComponent<LineRenderer>();
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/312683.html
標籤:
上一篇:使用mockito框架在單元測驗中回傳NullPointerException的多選條件查詢
下一篇:如何正確改變UWP的風格?
