首页 > 解决方案 > 为什么添加到列表中的 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 上使用断点,我看到:

添加空值

标签: c#unity3d

解决方案


您正在比较gnull除非出现严重问题,否则不会发生这种情况。您可能希望将WaypointsFollower组件与空值进行比较。

WaypointsFollower f = g.GetComponent<WaypointsFollower>();

if (f != null)
{
    waypointsFollowers.Add(f);
}

推荐阅读