项目开发过程中,难免会用到预设,众所周知,更改Hierarchy中的预设,需要点击Inspector中的Apply,才会更改。如果有几十个甚至几个百个预设,需要点击Apply,这无疑是个体力活。还有Unity3d提供了拓展功能。
using UnityEngine;
using System.Collections;
using UnityEditor;
[CustomEditor(typeof(PrefabsTools))]
public class PrefabsTools : ScriptableWizard {
[UnityEditor.MenuItem("Tools/Apply Selected Prefabs")]
static void ApplySelectedPrefabs(){
//获取选中的gameobject对象
GameObject [] selectedsGameobject= Selection.gameObjects;
GameObject prefab = PrefabUtility.FindPrefabRoot (selectedsGameobject[0]);
for (int i = 0; i < selectedsGameobject.Length; i++) {
GameObject obj=selectedsGameobject[i];
UnityEngine.Object newsPref= PrefabUtility.GetPrefabObject(obj);
//判断选择的物体,是否为预设
if(PrefabUtility.GetPrefabType(obj) == PrefabType.PrefabInstance){
UnityEngine.Object parentObject = PrefabUt