1. ActorAttribute v1
一开始我是想做一个可以使用泛型 ScriptableObject 的角色属性
1.1 ScriptableGenericVariable v1
泛型 ScriptableObject
Assets/MeowFramework/Core/Scriptable/ScriptableVariable/ScriptableGenericVariable.cs
// ----------------------------------------------
// 作者: 廉价喵
// 创建于: 01/04/2022 22:19
// 最后一次修改于: 11/04/2022 10:31
// 版权所有: CheapMeowStudio
// 描述:
// ----------------------------------------------
using Sirenix.OdinInspector;
using UnityEngine;
namespace MeowFramework.Core.Scriptable
{
/// <summary>
/// 可资产化变量的泛型
/// </summary>
/// <typeparam name="T"></typeparam>
[InlineEditor]
public class ScriptableGenericVariable<T> : SerializedScriptableObject
{
/// <summary>
/// 开发者注释
/// </summary>
[TextArea]
[Tooltip("开发者注释")]
public string DeveloperDescription = "";
/// <summary>
/// 可资产化变量的值
/// </summary>
[Tooltip("可资产化变量的值")]
public T Value;
}
}
1.2 ScriptableFloatVariable v1
泛型 ScriptableObject 不能生成,需要进行一步继承
Assets/MeowFramework/Core/Scriptable/ScriptableVariable/ScriptableFloatVariable.cs
// ----------------------------------------------
// 作者: 廉价喵
// 创建于: 01/04/2022 22:21
// 最后一次修改于: 11/04/2022 10:31
// 版权所有: CheapMeowStudio
// 描述:
// ----------------------------------------------
using Sirenix.OdinInspector;
using UnityEngine;
namespace MeowFramework.Core.Scriptable
{
/// <summary>
/// 可资产化 float 变量
/// </summary>
[InlineEditor]
[CreateAssetMenu(menuName = "MeowFramework/Scriptable Variable/Create Scriptable Float Variable")]
public class ScriptableFloatVariable : ScriptableGenericVariable<float>
{
}