销毁所有子对象所花费的时间基本相同
方法一:找到所有子对象并一一销毁
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 找到所有子物体,但是会从自身开始。
相关文章: