【发布时间】:2016-06-23 19:03:21
【问题描述】:
我有一个 UI 文本元素(在画布内),我需要从另一个脚本中获取一个值。
我现在正在做的事情(这是我最接近它的工作方式)是:
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”。
当我运行它时,我得到了错误
Assets/Scripts/HUD Classes/AttributeValueController.cs(19,58):错误 CS0120:访问非静态成员 `CharacterGenerator._toon' 需要对象引用
和
NullReferenceException:对象引用未设置为对象的实例 UnityEngine.UI.Graphic.OnRebuildRequested() (在 C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.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”替换这个函数时,它可以工作......我到处搜索,我无法修复它
【问题讨论】:
-
永远不要以任何理由使用“[SerializeField]”。删除那个!
-
it; 绝对不可能帮助您,除非您包含相关组件的 ALL 两个类。所有的类,包括顶行等等。