Files
aibis-dream/Assets/Editor/MenuItem/BlockPuzzleMenuItemCreator.cs
T
2025-12-08 19:54:35 +08:00

28 lines
1010 B
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, InteractionMode.UserAction);
return instantiatedPrefab.GetComponent<BlockShape>();
}
}
}