博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Unity】删除所有子物体保留父物体的2种方式
阅读量:3923 次
发布时间:2019-05-23

本文共 939 字,大约阅读时间需要 3 分钟。

今天遇到了这个问题,最后得出了2种解决方案,经过测试后,销毁所有子物体所用的时间,基本相同

情景:有一个父物体A,有子物体B1.B2.B3......B10等10个子物体

现在想销毁B1----B10,保留A

方法一:找到所有子物体,依次销毁

方法二:给每个子物体添加一个自我销毁的方法,在满足特定条件的情况下发送广播

方法一:

using UnityEngine;

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

}

方法二:

using UnityEngine;

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

 }

using UnityEngine;

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

转载地址:http://igmrn.baihongyu.com/

你可能感兴趣的文章
C++ perimer 第十七章 多重继承与虚继承部分
查看>>
java 堆溢出的解决方法
查看>>
C++ primer 第十八章
查看>>
《浪潮之巅》笔记&小感悟
查看>>
java 重写类的equals方法和hashcode方法
查看>>
java 判断字符串中是否含有字母
查看>>
《产品经理手册》 读书笔记
查看>>
IT人员迅速提升自我效率的十大方法
查看>>
《结网》读书笔记
查看>>
Eclipse里Tomcat的几个设置
查看>>
Ajax发请求的基本流程
查看>>
java类构造函数的继承
查看>>
Google的几个地理位置相关的API
查看>>
DataInputStream和DataOutputStream
查看>>
将amr音频转为flac格式
查看>>
eclipse创建j2me工程注意
查看>>
S40使用J2ME录音
查看>>
神经网络学习
查看>>
读<机器学习的那些事>
查看>>
利用eclipse生成javadoc
查看>>