簡體   English   中英

UNity3D錯誤顯示另一個腳本C#中的變量

[英]UNity3D error displaying variable from another script c#

我有一個UI Text元素(在畫布內),我需要從另一個腳本中獲取值。

我現在的工作方式(那是我要使其工作最接近的方式):

public class AttributeValueController : MonoBehaviour {

//public AttributeName attribute;
[SerializeField]
private Text attributeValue = null;

// Use this for initialization
void Start () {
    attributeValue.text = CharacterGenerator._toon.GetPrimaryAttribute("Might").AdjustedBaseValue.ToString();   
}

我在檢查器上將要更改的文本組件設置為“ attributeValue”。

當我運行這個我得到錯誤

資產/腳本/ HUD類/AttributeValueController.cs(19,58):錯誤CS0120:訪問非靜態成員`CharacterGenerator._toon'需要對象引用

NullReferenceException:對象引用未設置為對象UnityEngine.UI.Graphic.OnRebuildRequested()的實例(位於C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/UI/Core/Graphic.cs:480) UnityEngine.UI.GraphicRebuildTracker.OnRebuildRequested()(在C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/GraphicRebuildTracker.cs:33)UnityEngine.CanvasRenderer.RequestRefresh()(在C:/ buildslave / unity / build / artifacts / generated / common / modules / UI / CanvasRendererBindings.gen.cs:314)

有人可以幫忙嗎? 當我將此功能替換為“ 0”時,它可以工作...我到處搜索,無法修復它

如果CharacterGenerator不是靜態類,則不能這樣訪問它。 您必須創建該類的實例才能訪問屬性。

CharacterGenerator cGen = new CharacterGenerator();
attributeValue.text = cGen._toon.GetPrimaryAttribute("Might").AdjustedBaseValue.ToString();

盡管鑒於這是該類的新實例,但我不希望填充這些屬性,但是也許您的類是這樣構造的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM