(每日一题)销毁所有子物体所用的时间

(每日一题)销毁所有子物体所用的时间

销毁所有子对象所花费的时间基本相同

方法一:找到所有子对象并一一销毁

using UnityEngine;  
using System.Collections;  
///   
/// 脚本位置:将此脚本挂载到父物体A身上  
/// 脚本功能:用于测试销毁所有子物体  
///   
public class Parent : MonoBehaviour  
{  
    void Start ()  
    {  
        for (int i = 0; i < transform.childCount; i++) {  
            Destroy (transform.GetChild (i).gameObject);  
        }  
    }  
  
}  

方法二:为每个子对象添加自毁方法,并在满足一定条件时发送广播。

using UnityEngine;  
using System.Collections;  
  
///   
/// 脚本位置:将此脚本挂载到父物体A身上  
/// 脚本功能:发送广播给自己和自己的所有子物体  
///   
public class Parent : MonoBehaviour  
{  
    void Start ()  
    {  
        // 执行Start方法后会发送一个广播  
        // 广播会从自身开始查找这个DestoryMe方法,查找完自身后会查找所有子物体  
        BroadcastMessage ("DestoryMe");  
    }  
}  

using UnityEngine;  
using System.Collections;  
///   
/// 脚本位置:每个需要被销毁的子物体身上  
/// 脚本功能:销毁自身  
///   
public class Son : MonoBehaviour  
{  
    // 作为被广播通知的方法,由父物体通知执行  
    public void DestoryMe ()  
    {  
        Destroy (gameObject);  
    }  
}  

总结:这两个方法本质上都是遍历unity 找到所有子物体

第二种广播方式也是遍历unity 找到所有子物体,但是会从自身开始。

因此人物立绘橙光游戏,第二种方法会比第一种方法多遍历一次。

相关文章:

文章来源:https://www.likecs.com/show-307826816.html