2018-09-04 11:59:45 qq_39097425 阅读数 3862

新建一个脚本,将下面脚本挂载到父物体上

注意: 实测第一种初始化删除会快很多,而且没有Update()方法,只在初始化执行一次;第二种方法执行完之后在Update()里面还是会不停的执行判断逻辑

目录结构如下:

第一种方法:Start()

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class DeleteAllTest : MonoBehaviour {

	// Use this for initialization
	void Start () {
		DeleteOldImage ();
	}
	// 初始化删除
	void DeleteOldImage(){
		for (int i = 0; i < transform.childCount; i++) {
			Destroy (transform.GetChild (i).gameObject);
		}
	}
	
}

第二种方法:Update()

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class DeleteAllTest : MonoBehaviour {


	// Update is called once per frame
	void Update () {
		for (int i = 0; i < transform.childCount; i++) {
			Destroy (transform.GetChild (0).gameObject);
		}
	}
}

关于下面评论的测试:代码如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class DeleteAllTest : MonoBehaviour
{

    // Use this for initialization
    void Start()
    {
        //DeleteOldImage ();
    }
    void Update()
    {
        for (int i = 0; i < transform.childCount; i++)
        {
            Destroy(transform.GetChild(0).gameObject);
            Debug.Log("Destroy:" + transform.GetChild(0).gameObject.name);
        }


    }
    // 初始化删除
    void DeleteOldImage()
    {
        for (int i = 0; i < transform.childCount; i++)
        {
            Destroy(transform.GetChild(i).gameObject);
            Debug.Log("Destroy:" + transform.GetChild(i).gameObject.name);
        }
    }
}

测试结果如下:(两种方法都能正常删除所有子物体)

运行前:

RunTime: 

2013-02-26 13:44:59 fzhlee 阅读数 4081
public Transform fatherOb;

private void Start() {
     transform.parent = fatherOb;
}


//倒过来,就是把对方设置成父物体

2015-07-02 16:08:46 u012842807 阅读数 7557


    public GameObject[] obj;

    void Awake()
    {
   
        for (int i = 0; i < obj.Length; i++)
        {
            for (int j = 0; j < obj[i].transform.childCount;j++ )
            {
                print("obj[i].transform.childCount=" + Enemy_Path[i].transform.childCount);
                obj[i].transform.GetChild(j).GetComponent<"想要获取的组件">().enabled = false;
            }


          
        }

    }


蛮牛博客:http://www.unitymanual.com/home.php?mod=space&uid=8069&do=blog&view=me


2013-08-20 16:40:58 xuanjian6 阅读数 17605

	void Start () {
		foreach(Transform tran in GetComponentsInChildren<Transform>()){//遍历当前物体及其所有子物体
			tran.gameObject.layer = 30;//更改物体的Layer层
		}
	}

当需要隐藏一部分物体时,可以使用Layer过滤。

在Camera中设置Culling Mask选择要观察的Layer

2019-07-23 17:28:36 qq_34229678 阅读数 766

Unity3D 获取当前物体为第几个子物体

快下班了,没想到今天能写两篇新发现。

不多说,直接上代码了:

print(transform.GetSiblingIndex());//显示当前物体为第几个子物体

unity 3d 鼠标旋转物体脚本

博文 来自: dickysun1987
没有更多推荐了,返回首页