繁体   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