Unity 如何自定义一个组件 让其可以在面板Inspector被创造(1)

灰常简单!只需三步!

Firstly 创建一个c#文件(我这里取名为ScriptableUtility2)

内容为

using UnityEngine;
using UnityEditor;

public static class ScriptableUtility2
{
    //为创建自定义类型
    public static void CreateAsset<T>() where T : ScriptableObject
    {
        var asset = ScriptableObject.CreateInstance<T>();
        //给默认的文件名称
        ProjectWindowUtil.CreateAsset(asset, "New " + typeof(T).Name + ".asset");
    }
}

Secondly 还是创建一个c#文件(我这里取名为CardAsset)这个就是我们要创建的对象了。

请注意!他!一定要继承我们的ScriptableObject类噢!!!

内容为

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CardAsset : ScriptableObject
{
    //要做什么操作自己定义吧~
}

Thirdly 创建一个C#文件 (我这里取名为CardUnityIntegration)

这个是用来创建文件的核心步骤。如果第二部没有继承ScriptableObject类,那么创建上面的类时就会报错。

内容为

using UnityEngine;
//为了可以在面板中create cardAsset
using UnityEditor;

public class CardUnityIntegration
{
    //右击后,按钮创建的位置
    [MenuItem("Assets/Create/CardAsset")]
    public static void CreateYourScriptableObject()
    {
        //我们需要CardAsset继承ScriptableObject
        //否则它将无法被作为泛型被创造
        ScriptableUtility2.CreateAsset<CardAsset>();
    }
}

猜你喜欢

转载自blog.csdn.net/JustinAndy/article/details/86088527