2013-10-18 58 views
0

我試圖從作爲我的文本網格對象的父級的類訪問我的TextMesh的文本組件。在運行時更改文本網格的文本值

我一直在玩這個代碼,但無法讓它改變。我做錯了什麼?有額外的電話或我需要做的事嗎?

這是代碼握着我的祖父對象上(在這種情況下,攝像機),平面是相機這僅僅是一個平面物體,被稱爲平面和textmesh是我的平面物體的孩子的直接孩子。文本網格稱爲FloorMenu。

TextMesh text = (TextMesh)GameObject.Find("Plane").GetComponent("FloorMenu"); 
text.text = "test"; 

當我嘗試運行此代碼我碰到下面的錯誤點擊它時加倍,點我到text.text行:

NullReferenceException: Object reference not set to an instance of an object 

據我所知的第一行應該是指向處理給定錯誤的TextMesh。雖然我得到錯誤,但我一定在做錯事。

有人請教育我做錯了什麼嗎?

+0

你是什麼意思,當你說TextMesh被稱爲FloorMenu?我不相信你可以命名這樣的組件。嘗試將其更改爲GetComponent(「TextMesh」);並看看會發生什麼。 – stevepkr84

回答

0

您組裝該行代碼的方式可以防止您看到它的哪一部分正在拋出NullReferenceException。

// Note: This is C# 

    var plane = GameObject.Find("Plane"); 

    var floorMenu = plane.GetComponent("FloorMenu"); // <-- FYI: GetComponent("FloorMenu") seems wrong (probably null). 
    // var floorMenu = plane.GetComponent(typeof(TextMesh)); // this might work, depends on how your scene is structured. 

    Debug.Log("is a TextMesh?: " + (floorMenu is TextMesh)); // Bet you this is false. 

    var text = (TextMesh) floorMenu; 

    text.text = "test"; 
相關問題