28 lines
1.0 KiB
C#
28 lines
1.0 KiB
C#
using UnityEditor;
|
|
using UnityEngine;
|
|
|
|
namespace AibisDream.SystemEditor
|
|
{
|
|
public static class BlockPuzzleMenuItemCreator
|
|
{
|
|
private const string BLOCK_SHAPE_PREFAB_PATH = "Assets/Prefabs/BlockPuzzle/BlockShape.prefab";
|
|
|
|
[MenuItem("GameObject/Block Puzzle/Shape")]
|
|
public static BlockShape CreateBlockPuzzleShape()
|
|
{
|
|
var prefabAsset =AssetDatabase.LoadAssetAtPath<GameObject>(BLOCK_SHAPE_PREFAB_PATH);
|
|
if (prefabAsset == null)
|
|
{
|
|
throw new System.InvalidOperationException(
|
|
$"Can't create a new Block Shape: Can't find the prefab to create a Block Shape from."
|
|
);
|
|
}
|
|
|
|
var instantiatedPrefab = (GameObject)PrefabUtility.InstantiatePrefab(prefabAsset);
|
|
PrefabUtility.UnpackPrefabInstance(instantiatedPrefab, PrefabUnpackMode.Completely, UnityEditor.InteractionMode.UserAction);
|
|
return instantiatedPrefab.GetComponent<BlockShape>();
|
|
}
|
|
}
|
|
}
|
|
|