EditorUtility.CreateEmptyPrefab 创建空预置

static function CreateEmptyPrefab (path : string) : Object


Creates an empty prefab at given path.


If a prefab at the path already exists it will be deleted and replaced with an empty prefab. Returns a reference to the prefab.


// Creates a prefab from the selected GameObjects.

// if the prefab already exists it asks if you want to replace it



class CreatePrefabFromSelected extends ScriptableObject {

	@MenuItem("Examples/Create Prefab From Selected")

	static function CreatePrefab() {

		var objs = Selection.gameObjects;

		for (var go : GameObject in objs) {

			var localPath : String = "Assets/" + go.name + ".prefab";

			if (AssetDatabase.LoadAssetAtPath(localPath, GameObject)) {

				if (EditorUtility.DisplayDialog("Are you sure?",

					"The prefab already exists. Do you want to overwrite it?",



					createNew(go, localPath);

			} else {

				createNew(go, localPath);




	@MenuItem("Examples/Create Prefab From Selected", true)

	static function ValidateCreatePrefab() {

		return Selection.activeGameObject != null;


	static function createNew(obj : GameObject, localPath : String) {

		var prefab : Object = EditorUtility.CreateEmptyPrefab(localPath);

		EditorUtility.ReplacePrefab(obj, prefab);



		var clone : GameObject = EditorUtility.InstantiatePrefab(prefab) as GameObject;


Page last updated: 2011-7-16