[Unity 3d] SetProperty (Inspecto
2019-06-06 本文已影响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类
链接
结语:
这个组件提供了一个非常不错的:字段断言,修正和Inspector调方法做API测试的解决方案(亦即将属性特性搬上了Inspector)。虽然它的实现仅仅一个反射而已,达到的效果却是非常入人意中啊。
本文集持续更新ing