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