c# - 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 的东西吗?
解决方案
推荐阅读
- python - 如何在python中使用正确的十进制值读取_csv浮点值
- ssrs-2008 - 从我的 SSRS 报告中每个组的总数计算总计
- ios - 键盘扩展为 UIKeyboardTypeNumberPad 返回 needsInputModeSwitchKey false
- pymatgen - 相对于晶轴的磁矩?
- html - 如何在某个位置显示带有使用(three.js)创建的3D对象的窗口?
- traefik - 与 docker compose 一起使用时覆盖默认的 traefik 前端规则
- html - CSS 引导程序:list-group-item hover+selected
- javascript - 如果我为模态添加数据切换,Linkbutton OnClick 将不会触发
- sql - 像 postgresql 数据问题中的运算符条件
- java - 如何在 ARCore Sceneform 中为节点创建动画(更改缩放、旋转或位置)?