c# - 为什么添加到列表中的 foreach 也为空?
问题描述
GameObject parent = GameObject.Find("Moving Object Parent");
for (int i = 0; i < numberOfObjectsToMove; i++)
{
var objectToMove = Instantiate(objectToMovePrefab, parent.transform);
objectToMove.name = "Platfrom";
foreach (Transform g in objectToMove.GetComponentsInChildren<Transform>())
{
g.GetComponent<WaypointsFollower>();
if (g != null)
waypointsFollowers.Add(g.GetComponent<WaypointsFollower>());
}
}
如果我在 waypointsFollowers.Add 上使用断点,我看到:
解决方案
您正在比较g
,null
除非出现严重问题,否则不会发生这种情况。您可能希望将WaypointsFollower
组件与空值进行比较。
WaypointsFollower f = g.GetComponent<WaypointsFollower>();
if (f != null)
{
waypointsFollowers.Add(f);
}
推荐阅读
- ansible - Ansible lint 报告“软件包安装不应使用最新的”
- python - 使用 python-docx 插入图像后 Word 文档的表格单元格中的空行
- string - 在结构字段中查找字符串的索引
- python-3.x - 使用 cerberus 正则表达式验证字符串以模式结尾
- ruby-on-rails - 如何干燥 Rails 6 部分形式
- r - Plotly (R) 使小数成为条形图中最大的条形
- mysql - 有没有办法可视化 MySQL 外键级联?
- sql - SQL 通配符不产生任何结果
- java - 使用 JPA 和 Hibernate 覆盖 CrudeRepository save() 错误
- swift - 缺少作为视图祖先的视图