[Unity 3d] SetProperty (Inspector 属性绘制)- GitHub

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容