当满足另一个脚本中的条件时,如何让文本 UI 出现?
Posted
技术标签:
【中文标题】当满足另一个脚本中的条件时,如何让文本 UI 出现?【英文标题】:How do I get text UI to appear when a condition in another script is met? 【发布时间】:2021-07-28 17:01:24 【问题描述】:这是我的第一个问题,所以我对“问题礼仪”知之甚少。我正在使用 Visual Studio 在 Unity 中使用 C#。
当另一个脚本满足条件时,我试图让文本出现有点困难。
一个脚本(我们称之为 ManagerScript)附加到一个空的(我们称之为 Manager),它管理一些被摧毁的敌人,计算被摧毁的敌人的数量,一旦这个数字达到 8,我希望文本出现告诉用户他们赢了。
我该怎么做?我在 Canvas 面板上有一些文本 UI(我们称之为对象 WinnerText),但我不知道如何让它只有在玩家获胜后才“激活”。
请不要只给我答案-如果可以的话,请解释原因,这样当玩家输掉比赛时我可以做同样的事情。
提前致谢! 金蝰蛇
【问题讨论】:
每次消灭敌人时->加点->此时检查if(points > neededPoints)
然后theUI.SetActive(true);
【参考方案1】:
跟踪计数的 ManagerScript 应在修改后检查您的输赢情况,例如:
number++;
if(number > x)
// Display Text
显示您的文本或其他 ui 元素。您需要直接对游戏对象或组件进行某种引用。由于 ManagerScript 不知道它,因此您需要为其提供要激活/停用的组件/游戏对象的引用。
Unity 提供了多种获取参考的方式。例如,您可以在 ManagerScript 中声明 public GameObject MyUiElement
(您也可以只使用您需要的组件,例如“文本”)。如果您声明了公共属性,则“经理”检查器中将出现一个新区域,您可以在其中通过拖放或单击和选择来引用您的对象。
获取所需游戏对象引用的其他方法是使用 GameObject.Find 或类似方法。有关查找的更多信息,请参阅:https://docs.unity3d.com/ScriptReference/GameObject.Find.html
如果你有你的 GameObjects 参考,你可以像这样操作它
number++;
if(number > x)
MyUiElement.SetActive(true/false);
【讨论】:
以上是关于当满足另一个脚本中的条件时,如何让文本 UI 出现?的主要内容,如果未能解决你的问题,请参考以下文章
如何在鼠标移动时在图片上方显示链接,同时降低图片的不透明度?