Unity3D获取GameObject的所有子对象,添加特定标签

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

public class AddTagsToObject : EditorWindow {
	string TagName;
	GameObject SceneObject;

	[MenuItem("SHxnEditor/AddTagsToGameObjects")]
	static void AddTagsToGameObject(){
		Rect rect = new Rect (0, 0, 400, 400);
		//AddTagsToObject window =(AddTagsToObject) EditorWindow.GetWindowWithRect (typeof(AddTagsToObject),new Rect(400,400,500,500),true,"AddTagsToGameObject");  //-less--code--
		//var window=GetWindowWithRect<AddTagsToObject>(new Rect(400,400,500,500),true,"AddTagsToGameObject");
		AddTagsToObject window =(AddTagsToObject) EditorWindow.GetWindowWithRect (typeof(AddTagsToObject),rect,true,"AddTagsToGameObject");
		window.Show ();
	}
		
	void OnGUI(){
		TagName = EditorGUILayout.TagField("Choose TAG",TagName,GUILayout.Height(20));
		SceneObject = (GameObject)EditorGUILayout.ObjectField ("Scene GameObject",SceneObject,typeof(GameObject),true);
		if (GUILayout.Button ("Add Tags")) {
			if (SceneObject == null) {
				ShowNotification (new GUIContent ("No Object selected!!"));
			}
			else{
				AddTags ();
			}
		}

		if (GUILayout.Button ("Add Layer")) {
		}
	}

	//----add-tags----
	void AddTags(){
		Transform[] scenechildren=SceneObject.GetComponentsInChildren<Transform> ();

		foreach(Transform child in scenechildren){
			if (child.name.Contains ("facade")) {
				foreach (Transform childd in child.parent) {
					if(childd.tag!=TagName)
						Undo.RecordObject (childd.gameObject,"Add Tags");
						childd.tag=TagName;
				}
			}
		}
	}
	//----add-layer-----
	void Addlayer(){
		
	}
}
GetComponentsInChild<Transform>()获取所有子对象transform;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值