【问题标题】:My Boolean In Another Script Won't Change State我在另一个脚本中的布尔值不会改变状态
【发布时间】:2018-11-24 20:45:04
【问题描述】:

感谢您阅读本文。我很困惑,为什么由于某种原因,当激光产生时,这段代码不会将 live round 设置为 true,但是它将产生原点设置为正确的游戏对象并将其与父对象分离,有人得到了什么吗?在你问之前,不,我不会在任何地方将 live round 设置为 false,直到我摧毁激光本身。 感谢您的帮助!

private void Start()
{
   if (gameObject.name == "Big Laser(Clone)")
   {
       spawnOrigin = GetComponentInParent<BigShip>();
       spawnOrigin.liveRound = true;
       transform.parent = null;
   }
}

【问题讨论】:

  • unity 不是我的知识领域,但我可以告诉你,没有人能猜到代码的其他部分会发生什么。请调试您的程序(例如,当liveRound 的值发生变化时,有些手表会进入调试器),然后提供一个最小的完整示例,以便重现问题。
  • @dlatikay 用 vs 调试它很好,我从来没有想过在使用统一时这样做。我会尝试并返回更多信息
  • 非常感谢,天哪,我不使用 vs 调试感到愚蠢。你为我节省了很多挫折和时间,我的朋友祝你一切顺利@dlatikay!

标签: c# unity3d boolean


【解决方案1】:

如果您确定没有更改代码中的变量,我认为这里的问题是您的组件 spawnOrigin 不正确。只需检查 spawnOrigin 是您想要通过 Debug.Log 获取的正确组件或在 Visual Studio 中设置断点。

【讨论】:

  • 我确实通过打印功能检查了它,甚至公开了生成源以便能够在编辑器中单击它并查看它缓存到的内容,一切似乎都是正确的......谢谢不过帮忙!
猜你喜欢
  • 1970-01-01
  • 2023-04-10
  • 1970-01-01
  • 1970-01-01
  • 2013-10-02
  • 2021-11-11
  • 2020-09-17
  • 2019-08-19
  • 2021-03-21
相关资源
最近更新 更多