c# - 发生某事时如何启用和禁用对象
问题描述
玩家穿过每面墙后会改变颜色。如果玩家是黄色并且墙壁是红色,那么玩家的颜色将变为橙色。此外,下一堵墙将生成一个橙色的小部分。但是,我无法打开和关闭橙色墙壁对象。下面的代码改变了玩家的颜色,也改变了墙壁的颜色。但是,我无法使其激活墙壁(即 deployBlack),并在通过它后将其停用。这是我的代码:
if(col.tag!= currentColor){
if (currentColor=="Yellow" && col.tag=="Red"){
sr.color=colorOrange;
currentColor="Orange";
deployBlack.SetActive(true);
whitesr.color=colorOrange;
deployBlack.SetActive(false);
}
解决方案
好,知道了。现在我看到了您的其余代码,诊断问题要容易得多。您if
发生的一个语句OnTriggerEnter2D
最终将执行,当它执行时,它设置deployBlack
为true
但在该真实语句之后立即将其设置为false
每次。因此,您将看到它,直到您穿过墙壁一次。一旦你这样做,它将结束任何设置为if
的语句。这意味着无论任何东西是什么颜色,意志的最终结果都是。您需要将其放在代码中的其他位置。deployBlack
false
deployBlack
false
deployBlack.SetActive(false);
我仍然有点不确定你想要实现什么,因为我不知道你是如何产生墙的,或者玩家是什么变量/精灵,但无论如何,你的核心问题是每个if
语句都以deployBlack.SetActive(false);
所以它总是显示为假,除了它设置为的几毫秒true
。
希望这可以帮助!
推荐阅读
- javascript - React Native useState 同步
- kentico - Alt 标记到 GetImage("NewsTeaser")
- json - 如何确保数组中不超过一项在 JSON 模式中具有特定值
- reactjs - 为什么我不能在循环中使用 useEffect()?
- python - 从熊猫数据框中提取单个元素
- python - Python opencv 问题
- powershell - 使用 Power Shell 在文本文件中查找和替换字符串
- ms-access - MS Access:拆分文件后出现 +2 GB 错误
- powershell - Invoke-WebRequest 在启用 IIS 身份验证的情况下访问 Sitecore EE URL 时由于凭据无效而引发访问被拒绝
- json - jq如何合并多个数组?