using UnityEditor; using UnityEngine; namespace AibisDream.SystemEditor { public static class BlockPuzzleMenuItemCreator { private const string BLOCK_SHAPE_PREFAB_PATH = "Assets/Prefabs/BlockPuzzle/BlockShape.prefab"; [MenuItem(AibisEditorMenus.BlockPuzzleShape)] public static BlockShape CreateBlockPuzzleShape() { var prefabAsset =AssetDatabase.LoadAssetAtPath(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(); } } }