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

来源:互联网 发布:数据科学实战手册 编辑:程序博客网 时间:2024/06/02 12:01
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;

0 0
原创粉丝点击