Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- using UnityEditor;
- using System.Collections;
- using System.Collections.Generic;
- public class ReplaceWithPrefab : ScriptableWizard
- {
- public GameObject prefab;
- [MenuItem("GameObject/Replace Selected Objects With Prefab...")]
- static void CreateWizard()
- {
- ScriptableWizard.DisplayWizard<ReplaceWithPrefab>("Replace Selected Objects With Prefab", "Replace");
- }
- void OnWizardCreate()
- {
- if (prefab != null)
- {
- foreach (Object o in Selection.objects)
- {
- if (o is GameObject)
- {
- Debug.Log("Transform: " + o.name);
- Transform t = (o as GameObject).transform;
- Transform newObj = ((GameObject)PrefabUtility.InstantiatePrefab(prefab)).transform;
- newObj.position = t.position;
- newObj.rotation = t.rotation;
- newObj.parent = t.parent;
- Undo.RegisterCreatedObjectUndo(newObj.gameObject, "Replace Selected Objects with Prefab");
- Undo.DestroyObjectImmediate(t.gameObject);
- }
- else
- {
- Debug.Log("something else.. " + o.name + " " + o.GetType());
- }
- }
- }
- else
- {
- Debug.LogWarning("Can't replace with prefab, because you haven't assigned a prefab to use.");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment