Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 被破坏的游戏对象的渲染器会发生什么情况?_C#_Unity3d_Runtime Error_Nullreferenceexception - Fatal编程技术网

C# 被破坏的游戏对象的渲染器会发生什么情况?

C# 被破坏的游戏对象的渲染器会发生什么情况?,c#,unity3d,runtime-error,nullreferenceexception,C#,Unity3d,Runtime Error,Nullreferenceexception,我正在尝试获取一个对我父gamobject子代中所有渲染器的引用,一些游戏对象被随机销毁。然而,当我尝试这样做 Renderer[] rs = parent.GetComponentsInChildren<Renderer>(); 对对象调用Destroy会将其放入队列中,以便稍后销毁。也许可以尝试destructionimmediate()以确保它在其他脚本启动之前发生 对对象调用Destroy会将其放入队列中,以便以后销毁。也许可以尝试destructionimmediate(

我正在尝试获取一个对我父gamobject子代中所有渲染器的引用,一些游戏对象被随机销毁。然而,当我尝试这样做

Renderer[] rs = parent.GetComponentsInChildren<Renderer>();

对对象调用Destroy会将其放入队列中,以便稍后销毁。也许可以尝试destructionimmediate()以确保它在其他脚本启动之前发生

对对象调用Destroy会将其放入队列中,以便以后销毁。也许可以尝试destructionimmediate()以确保它在其他脚本启动之前发生

Renderer[] rs;
List<Renderer> r = new List<Renderer>();
        GetComponentsInChildren(r);
        for(int i=0;i<r.Count;i++)
        {
            if (ReferenceEquals(r[i],null))
            {
                r.RemoveAt(i);
            }
        }
        rs = r.ToArray();
bool IsMissingReference(Object unknown)
    {
        try
        {
            unknown.GetInstanceID();
            return false;
        }
        catch (System.Exception e)
        {
            return true;
        }
    }