【问题标题】:Find Child Gameobject查找子游戏对象
【发布时间】:2021-01-07 23:39:27
【问题描述】:

我现在正在做项目。我有一个问题。

我希望我能简洁地解释你:)。

我的问题是。我想在层次结构中找到两个对象。这些对象是子对象。我的意思是,我有控制游戏的游戏对象,我有一个控制游戏的脚本。我想访问两个子对象。是否有不同的方法来使用代码查找子对象。

我试了几次都找不到。

顺便说一句,我写的代码在 Gamplay Controller 对象中。

这可能有点令人困惑。对此我深表歉意。

【问题讨论】:

  • 嗨,欢迎来到堆栈溢出。 1. 问题需要在正文中提供足够的信息才能重现。有关更多信息,请参阅minimal reproducible example。请包括检查员的屏幕截图,其中每个 Score 标记的对象被选中。 2. 相关代码应以文本形式包含,而不是以图像形式包含。这有助于未来的访问者更轻松地找到问题,还有助于回答者复制他们需要测试或编辑答案的代码。请将图片中的代码作为文本包含在问题中。

标签: c# unity3d


【解决方案1】:

您可以从检查器中设置引用,而不是尝试通过代码查找对象(正如您在图像中指出的那样,这解决了问题)。这是收集所需参考资料的首选方法。

如果您正在实例化对象,您可以从实例化方法中获得对游戏对象的引用,并且可以将该引用传递给相应的脚本。

如果您确实需要从场景中找到对象,您有几个选择。

FindGameObjectsWithTag 必须为游戏对象分配标签才能工作。

FindObjectsOfType 这是我从脚本中查找引用的首选方法。只要对象具有特定于这些对象的脚本。前任。如果您的 Score 对象附加了 Score.cs 单一行为,您只需向 unity 请求这些单一行为的所有引用。

var scoreComponents = FindObjectsOfType<Score>();

【讨论】:

  • 嗨 hijinxbassist 首先感谢您的回归。正如您所说,我是通过统一界面完成的。但是当我尝试从脚本中找到它时,我认为它不起作用,因为我要查找的对象是子对象。
  • 它是一个子游戏对象应该没有关系。你试过 FindObjectsOfType 了吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多