c# - 如何在不拖放序列化引用的情况下激活脚本中的子项?
问题描述
我有一个名为“Wizzard”的预制件,带有子“isActiveArrow”,使用精灵渲染器。在 Wizzard 的Player.cs
脚本中,我试图激活isActiveArrow
.
我这样做[SerializeField] private GameObject arrow;
然后使用arrow.SetActive(true);
但是我必须将子 isActiveArrow 拖放到序列化字段中。
如果没有直接引用孩子的序列化字段,我怎么能做到这一点?
就像是:
this.isActiveArrow.SetActive(true);
解决方案
如果“isActiveArrow”始终位于“Wizzard”的相同子索引(检查器中相对于其上方其他子对象的位置),则以下代码将起作用:
gameObject.ransform.GetChild(index).gameObject.SetActive(true)
GetChild 函数列出当前变换的所有子代。通过在 () 中传递一个索引,您可以访问该索引处的子对象。
推荐阅读
- google-chrome - Chromium - 媒体源扩展 - 附加:流解析失败
- vue.js - 有没有办法在 Kendo UI Vue Grid 中禁用 pageSize 的“全部”选项?
- azure - 源列表 /etc/apt/sources.list.d/microsoft-prod.list 中的第 1 行格式错误 在 Linux 上安装 Azure IoT Edge 运行时
- javascript - Javascript if else 重复
- delphi - Delphi:如何捕获 TStreamWriter 磁盘已满错误?
- python - 我想使用 for 循环从列表中删除重复项。我在这里遇到索引超出范围错误:if lst[i]==lst[j]:
- r - 没有使用 metaMDS 生成的站点分数
- elasticsearch - 根据顶级过滤器聚合创建不同的子聚合
- python - 根据二叉树逐级制作嵌套列表
- react-native - 从 React Native 中的不同文件导入函数