繁体   English   中英

未分配Unity C#变量

[英]Unity C# variable not assigned

实际上有点好笑。 我的项目中有两个文本UI。 两者都在画布上。 它们分别称为text1和text2。我在脚本中对这两者进行了相同的操作。 text1很好,但是似乎没有分配文本2,因为出现统一错误消息:“ UnassignedReferenceExeption:larrytalk的变量text2尚未分配。”

这是我的代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityStandardAssets.Characters.FirstPerson;

public class larrytalk : MonoBehaviour
{
[SerializeField] private GameObject FPS;
[SerializeField] public GameObject text1;
[SerializeField] public GameObject text2;
[SerializeField] private GameObject Larry;
[SerializeField] private GameObject Turm;
[SerializeField] private GameObject sockel;
CharacterController cc;

bool hold;



// Use this for initialization
void Start()
{
    cc = GetComponent<CharacterController>();
    GameObject Larry = GameObject.Find("larry1");
    GameObject Text1 = GameObject.Find("Text1");
    GameObject Text2 = GameObject.Find("Text2");
    GameObject charactercontroller = GameObject.Find("FPSController");
    GameObject Turm = GameObject.Find("mpp u3");
    GameObject sockel = GameObject.Find("beton");

    text1.SetActive(false);
    text2.SetActive(false);


}

// Update is called once per frame
void Update()
{

    if (Input.GetMouseButtonDown(0) && Input.GetMouseButton(0) && cc.height < 20 && Vector3.Distance(Larry.transform.position, this.transform.position) < 10)
    {
            text1.SetActive(true);
    }

   if( Vector3.Distance(Larry.transform.position, this.transform.position) > 20)
    {
        text1.SetActive(false);
    }
   if (Input.GetMouseButtonDown(0) && Input.GetMouseButton(0) && cc.height < 20 && Vector3.Distance(sockel.transform.position, Turm.transform.position) <10)
    {
        text2.SetActive(true);
    }
    else
    {
        text2.SetActive(false);
    }
}
}

与text1相关的所有内容都可以正常工作。 为什么text2也没有?

您的问题是您在start方法中声明了新变量,而没有分配在脚本顶部声明的变量。 更改

GameObject Text2 = GameObject.Find("Text2");

text2 = GameObject.Find("Text2");

并对其他字段执行相同操作。

至于为什么text1不会引发错误,它可能是在检查器中分配的,而text2不是。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM