1、直接使用for循环,遍历子物体,使用依次Destory直接销毁子物体;
Destroy(parent.GetChild(i).gameObject);
/// <summary>
/// 清除父物体下面的所有子物体
/// </summary>
/// <param name="parent"></param>
private void ClearChilds(Transform parent)
{
if (parent.childCount > 0)
{
for (int i = 0; i < parent.childCount; i++)
{
Destroy(parent.GetChild(i).gameObject);
}
}
}
2、注意事项:
1、不要使用Foreach遍历来增删元素,在遍历对象不是值类型时,修改集合元素,也不要使用foreach遍历修改。容易导致赋值错误。
foreach是封装的⼀个迭代器,调⽤List的GetEnumrator()⽅法;foreach遍历过程中增删,会使集合的大小和元素索引值发生变化,导致在foreach中增删元素时会抛出异常;foreach遍历过程执行时不是有序执行的,修改引用类型的数据容易导致赋值错误。
2、使用Destory销毁物体时,注意对象类型是gameObject;文章来源:https://www.toymoban.com/news/detail-506065.html
Destory可以销毁物体,也可销毁Transform,以及其他类型对象;文章来源地址https://www.toymoban.com/news/detail-506065.html
到了这里,关于unity——删除父物体下面的所有子物体的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!