更新 AttributeLibrary
+61
-6
@@ -1,7 +1,62 @@
|
||||
* CanFind$
|
||||
其中包含多个特性类,用于查找类,字段,属性,方法等项目。
|
||||
## ReName
|
||||
重命名特性
|
||||
|
||||
* ReName
|
||||
重命名特性,在没有安装odin插件的旧版本引擎上可以直接替换细节面板中的参数名。
|
||||
不过由于无法和odin兼容,odin的功能会覆盖掉这个特性,同时在2018(大概)以上的版本中也没用。
|
||||
虽然大多数情况下不起作用,但仍可以使用配套的一系列方法来处理这个特性,如批量查找,ugui系统重命名等。
|
||||
在没有安装odin插件的旧版本Unity(<=2021)上可以直接替换细节面板中的参数名。
|
||||
不过由于无法和odin兼容,odin的功能会覆盖掉这个特性.
|
||||
虽然大多数情况下不起作用,但仍可以使用配套的一系列方法来处理这个特性,如批量查找,ugui系统重命名等。
|
||||
|
||||
```
|
||||
var obj = new MyObject();
|
||||
|
||||
// 比如 MyObject 中有一个字段叫 getvalue ,那么可以这样调用,返回为找到的 ReName 标记,如果没找到,则返回null
|
||||
RenameAttribute.GetRenameAttribute(typeof(MyObject), "getvalue")
|
||||
|
||||
```
|
||||
|
||||
此特性用法比较早期,只能用来找一下是否标记了自定义的别名。
|
||||
|
||||
## CanFind
|
||||
可查找特性
|
||||
|
||||
你可以在任何位置使用该特性进行标记,使用字符串或枚举进行标记均可,内部会转为统一的字符串形式进行保存。
|
||||
|
||||
在需要进行查找的时候,使用对应的扩展方法即可:
|
||||
```
|
||||
var obj = new MyObject();
|
||||
|
||||
// 在实例上查找标签,这会返回目标实例上的所有特性标签(以字符串格式)
|
||||
obj.GetClassCanFindTag()
|
||||
|
||||
// 在类型上查找标签,这会返回类型上所有特性标签(以字符串格式)
|
||||
typeof(MyObject).GetClassCanFindTag()
|
||||
|
||||
// 在标签上查找类型,这会返回所有带有指定标签名称的类型
|
||||
("标签").GetClassByCanFindTag()
|
||||
|
||||
// 在枚举上查找类型,这会返回所有带有指定标签名称的类型
|
||||
myEnum.classTag.GetClassByCanFindTag()
|
||||
|
||||
```
|
||||
|
||||
可查找特性可以在一个类上重复标记,比如我定义了一个接口类,我希望定义它使用的请求地址,域名,方法等等,我可以像这样重复标记:
|
||||
```
|
||||
public static Uri LocalhostEnvironmentUriRoot = new Uri("http://192.168.0.48:8081");
|
||||
[Serializable]
|
||||
[CanFindClass("Post")]
|
||||
[CanFindClass(nameof(LocalhostEnvironmentUriRoot))]
|
||||
public class Ques_ExposeSegmentDetailSegmodel
|
||||
{
|
||||
// ...
|
||||
}
|
||||
|
||||
// 这样在面对一个接口时,可以直接对其
|
||||
if (ques.GetClassCanFindTag().Contains(nameof(LocalhostEnvironmentUriRoot)))
|
||||
// 切换到这个域名
|
||||
```
|
||||
只是举个例子,随便找一些自己喜欢的东西就行。
|
||||
|
||||
|
||||
## CusMe
|
||||
自定义菜单特性
|
||||
|
||||
一个比较复合的用法,使用相关的特性对一个类进行标记后,在生成界面的时候可以直接使用这个类型的对象自动生成界面,生成的界面和这个类中的标记字段对应。
|
||||
Reference in New Issue
Block a user