Unity中添加右键创建模板预制体
[MenuItem("Assets/Create/Custom Prefab", false, 0)]
private static void CreateCustomPrefab()
{
string fileName = "New Custom Prefab.prefab";
string templatePath = "Assets/Templates/Custom Prefab Template.prefab";
DoCreatePrefabAsset.CreatePrefab(fileName, templatePath);
}
internal class DoCreatePrefabAsset : UnityEditor.ProjectWindowCallback.EndNameEditAction
{
public static void CreatePrefab(string fileName, string templatePath)
{
ProjectWindowUtil.StartNameEditingIfProjectWindowExists(
0,
CreateInstance<DoCreatePrefabAsset>(),
fileName,
(Texture2D)EditorGUIUtility.IconContent("d_Prefab Icon").image,
templatePath);
}
public override void Action(int instanceId, string pathName, string resourceFile)
{
GameObject prefab = PrefabUtility.SaveAsPrefabAsset(AssetDatabase.LoadAssetAtPath<GameObject>(resourceFile), pathName);
ProjectWindowUtil.ShowCreatedAsset(prefab);
}
}