美文网首页UnityEditorunity
[Unity 3d] SetProperty (Inspecto

[Unity 3d] SetProperty (Inspecto

作者: 雨落随风 | 来源:发表于2019-06-06 22:16 被阅读1次

    GitHub 上的工程多如繁星,有些好的仓库,但凡不经意间错过了就很难找回,故稍作采撷,希望能帮助到有心人。
    本文集以一个小的功能点为单位行文,也便于拾取罢!

    简介:

    笔者今天推荐的仓库叫 SetProperty
    A PropertyAttribute/PropertyDrawer combination that allows for properties in Unity - 通过属性声明 + 属性绘制 功能将属性拥有的特性移植到 Inspector 的字段输入体验上。

    功能:

    Unity allows you to serialize private fields with [SerializeField]. Use the new [SetProperty] attribute to have a public property set every time the field is modified in Unity's inspector.
    通过在字段之上声明:[SetProperty("指定的属性")] 属性,可以在 Inspector 输入框每次输入完成之后进行断言和修正(属性特性)。

    演示:

    通过指明 属性的 名称,即能在Inspector 输入框输入时对输入的值进行必要的修正。

    [SerializeField, SetProperty("Number")] 
    private float number;
    public float Number
    {
        get
        {
            return number;
        }
        private set
        {
            number = Mathf.Clamp01(value);
        }
    }
    

    演示内容:

    1.演示将数值限制在0-1
    2.演示将输入的小写字母转大写
    3.演示枚举
    4.演示 类中类/非Mono类


    链接

    LMNRY/SetProperty: A PropertyAttribute/PropertyDrawer combination that allows for properties in Unity

    结语:

    这个组件提供了一个非常不错的:字段断言,修正和Inspector调方法做API测试的解决方案(亦即将属性特性搬上了Inspector)。虽然它的实现仅仅一个反射而已,达到的效果却是非常入人意中啊。

    本文集持续更新ing

    相关文章

      网友评论

        本文标题:[Unity 3d] SetProperty (Inspecto

        本文链接:https://www.haomeiwen.com/subject/iskpxctx.html