首页 > 解决方案 > Unity 从两个不同的脚本激活文本 UI

问题描述

我有某种逻辑错误。基本上,我试图在玩家靠近 NPC 或物体时显示 HUD 文本。我目前有两个单独的脚本与 NPC 和对象相关联。出于测试目的,两者之间的代码完全相同:

void CheckDist()
    {
        if (Vector3.Distance(playerBody.position, npcBody.position) < detectDist)
        {
            
            controlText.text = "Press 'e' to talk.";
            Debug.Log("In Range: " + Vector3.Distance(playerBody.position, npcBody.position));
            controlText.gameObject.SetActive(true);

        }
        else { controlText.gameObject.SetActive(false); }
    }

基本上,它会检查玩家与相应对象的距离,并显示“按'e'通话”或“按'空格'来接听”。这在 FixedUpdate() 中运行。出于某种原因,文本 UI 元素只会为 NPC 或对象激活。只有在编辑器中禁用该对象时,我才能为 NPC 激活它。任何一个的文本本身都会奇怪地更新。我缺少关于 SetActive 的东西吗?

标签: c#unity3d

解决方案


推荐阅读