更新日期:2020年11月6日。
Github源码:[点我获取源码] Gitee源码:[点我获取源码]
索引
- 框架实用特性
- LnkTools特性(快捷工具)
- CSDNBlogURL特性
- GithubURL特性(链接Github仓库)
- GiteeURL特性(链接Gitee仓库)
- Remark特性(文字备注)
- RunTimeAssembly特性(运行时程序集)
- LockTransform特性
- Builder框架构建器
- Builder构建前置条件
框架实用特性
框架里包含一些运行时或编辑器内使用的特性,他们对于初次使用者来说很可能是未知的,所以在这里进行统一的罗列。
LnkTools特性(快捷工具)
LnkTools特性(快捷工具)只能标记于静态方法,且只能用于编辑器内,他可以将你的静态方法注册到快捷工具栏,以便于一键完成你的自定义操作。
如下,我们新建一个编辑器脚本TestLnkTools。
在其中键入代码:
public class TestLnkTools
{
[LnkTools("我的工具")]
private static void Test()
{
GlobalTools.LogInfo("呼叫我的工具!");
}
}
然后回到编辑器,编译完成后,工具栏中便出现了我们自定义的工具:
点击【我的工具】:
CSDNBlogURL特性(链接CSDN博客)
CSDNBlogURL特性(链接CSDN博客)只能标记于类,且目标类必须是继承至HTFEditor的编辑器类,他用于修饰一个对象在Inspector面板的显示界面,CSDNBlogURL特性可以快速链接至一个CSDN博客url,以便于用户在使用你的代码出现疑问时,可以快速定位到你的帮助文档。
如下,我们为已有类型Test新建一个Inspector修饰类TestInspector。
在其中键入代码:
[CSDNBlogURL("你的CSDN博客地址")]
[CustomEditor(typeof(Test))]
public class TestInspector : HTFEditor<Test>
{
protected override bool IsEnableBaseInspectorGUI => true;
protected override void OnInspectorDefaultGUI()
{
base.OnInspectorDefaultGUI();
}
}
然后回到编辑器,查看Test组件的Inspector面板:
Test组件的Inspector面板很明显有了一个CSDN图标,点击他就能打开浏览器并链接至你的博客地址。
GithubURL特性(链接Github仓库)
GithubURL特性(链接Github仓库)只能标记于类,且目标类必须是继承至HTFEditor的编辑器类,他用于修饰一个对象在Inspector面板的显示界面,GithubURL特性可以快速链接至一个Github仓库url,以便于用户在使用你的代码时,可以快速定位到你的代码的源码管理仓库。
如下,我们在已有类型TestInspector中键入新的代码:
[CSDNBlogURL("你的CSDN博客地址")]
[GithubURL("你的Github仓库地址")]
[CustomEditor(typeof(Test))]
public class TestInspector : HTFEditor<Test>
{
protected override bool IsEnableBaseInspectorGUI => true;
protected override void OnInspectorDefaultGUI()
{
base.OnInspectorDefaultGUI();
}
}
然后回到编辑器,查看Test组件的Inspector面板:
Test组件的Inspector面板很明显有了一个Github图标,点击他就能打开浏览器并链接至你的源码仓库地址。
GiteeURL特性(链接Gitee仓库)
GiteeURL特性(链接Gitee仓库)只能标记于类,且目标类必须是继承至HTFEditor的编辑器类,他用于修饰一个对象在Inspector面板的显示界面,GiteeURL特性可以快速链接至一个Gitee仓库url,以便于用户在使用你的代码时,可以快速定位到你的代码的源码管理仓库。
如下,我们在已有类型TestInspector中键入新的代码:
[CSDNBlogURL("你的CSDN博客地址")]
[GithubURL("你的Github仓库地址")]
[GiteeURL("你的Gitee仓库地址")]
[CustomEditor(typeof(Test))]
public class TestInspector : HTFEditor<Test>
{
protected override bool IsEnableBaseInspectorGUI => true;
protected override void OnInspectorDefaultGUI()
{
base.OnInspectorDefaultGUI();
}
}
然后回到编辑器,查看Test组件的Inspector面板:
Test组件的Inspector面板很明显有了一个Gitee图标,点击他就能打开浏览器并链接至你的源码仓库地址。
Remark特性(文字备注)
Remark特性(文字备注)可用于任意类型,标记之后,在代码中可以很方便的获取这个成员的文字备注信息。
比如,标记枚举:
protected override void OnInspectorDefaultGUI()
{
base.OnInspectorDefaultGUI();
TestEnum testEnum = TestEnum.House;
GlobalTools.LogInfo(testEnum.GetRemark()); //打印:房屋
}
public enum TestEnum
{
[Remark("房屋")]
House,
[Remark("公路")]
Highway
}
RunTimeAssembly特性(运行时程序集)
RunTimeAssembly特性(运行时程序集)只能标记于String类型的静态字段,且只能用于运行时,他可以将该字段值代表的程序集加入到框架的运行时程序域,以便于框架能够正确识别该程序集。
比如,你有一个自定义程序集MyAssembly,这样做将其加入到框架的运行时程序域:
[RunTimeAssembly]
private static string test = "MyAssembly";
LockTransform特性
LockTransform特性只能标记HTBehaviour的子类,挂载该脚本后将锁定目标 GameObject 的 Transform 组件,禁止在检视面板修改属性值。
如下组件:
[LockTransform]
public class Test : HTBehaviour
{
[Label("锁住Transform组件")] public string a;
}
挂载到任意GameObject上之后:
Builder框架构建器
Builder框架构建器为在Unity默认构建器上进一步封装的专用构建器,他秉承了框架的特性:只有包含框架主体的入口场景才能被允许构建,其他场景将只能以资源形式打入AB包。
Builder构建前置条件
Builder构建时允许设置前置条件,只有前置条件全部满足,才允许构建项目,这适用于一些构建操作频繁的项目,以防止错误构建,或未完成构建前初始化便企图构建。
任意编辑器脚本中键入如下代码:
[InitializeOnLoadMethod]
private static void CheckBuild()
{
//CheckBuildPreconditions 为项目构建前置条件集合,任意一个条件返回false,都将禁止构建
Builder.CheckBuildPreconditions.Add(Check);
}
private static bool Check()
{
//如果已封版本,则允许构建
return Version.blocked;
}
打开构建器,如果条件检测未通过,将无法构建,以避免错误的构建浪费大量时间: