言語: 日本語
  • C#
  • JS
  • Boo

スクリプト言語

お好みのスクリプト言語を選択すると、サンプルコードがその言語で表示されます。

PrefabUtility.ReplacePrefab

public static function ReplacePrefab(go: GameObject, targetPrefab: Object, options: ReplacePrefabOptions = ReplacePrefabOptions.Default): GameObject;

Description

ゲームオブジェクトの階層にある go のコピーと targetPrefab を置き換えます。

それが作成された後にプレハブゲームオブジェクトを返します。 go が有効になっている場合、 go が作成されたプレハブのインスタンスを作ることになります。

	// Creates a prefab from the selected GameObjects.
	// Creates a prefab from the selected GameObjects.
	// if the prefab already exists it asks if you want to replace it
	
	@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?", 
					"Yes", 
					"No"))
						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 = PrefabUtility.CreateEmptyPrefab(localPath);
		PrefabUtility.ReplacePrefab(obj, prefab, ReplacePrefabOptions.ConnectToPrefab);
	}