更新日期:2020年4月20日。
Github源码:[点我获取源码]
索引
框架实用特性
框架里包含一些运行时或编辑器内使用的特性,他们对于初次使用者来说很可能是未知的,所以在这里进行统一的罗列。
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图标,点击他就能打开浏览器并链接至你的源码仓库地址。
CustomTool特性(自定义工具)
CustomTool特性(自定义工具)只能标记于静态方法,且只能用于编辑器内,他可以将你的静态方法注册到CustomTool菜单(HTFramework -> Tools -> CustomTool),以便于一键完成你的自定义操作。
如下,我们在已有类型TestInspector中键入新的代码:
[CSDNBlogURL("你的CSDN博客地址")]
[GithubURL("你的Github仓库地址")]
[CustomEditor(typeof(Test))]
public class TestInspector : HTFEditor<Test>
{
protected override bool IsEnableBaseInspectorGUI => true;
protected override void OnInspectorDefaultGUI()
{
base.OnInspectorDefaultGUI();
}
[CustomTool]
private static void TestCustomTool()
{
GlobalTools.LogInfo("自定义菜单操作!");
}
}
我们回到编辑器,编译完成后,依次点击菜单:HTFramework -> Tools -> CustomTool。
CustomTool可以修饰多个静态方法,他们都将在呼叫CustomTool菜单时被执行,很显然的,我们可以用他来在项目Build前执行一系列操作,而这一系列操作只需要我们点击CustomTool这一个菜单。
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";
Builder框架构建器
Builder框架构建器为在Unity默认构建器上进一步封装的专用构建器,他秉承了框架的特性:只有包含框架主体的入口场景才能被允许构建,其他场景将只能以资源形式打入AB包。
Builder构建前置条件
Builder构建时允许设置前置条件,只有前置条件全部满足,才允许构建项目,这适用于一些构建操作频繁的项目,以防止错误构建,或未完成构建前初始化便企图构建。
任意编辑器脚本中键入如下代码:
[InitializeOnLoadMethod]
private static void CheckBuild()
{
//CheckBuildPreconditions 为项目构建前置条件集合,任意一个条件返回false,都将禁止构建
Builder.CheckBuildPreconditions.Add(Check);
}
private static bool Check()
{
//如果已封版本,则允许构建
return Version.blocked;
}
打开构建器,如果条件检测未通过,将无法构建,以避免错误的构建浪费大量时间: