首页 > 其他分享 >【Unity】 HTFramework框架(三十四)框架实用特性

【Unity】 HTFramework框架(三十四)框架实用特性

时间:2022-12-13 14:33:09浏览次数:62  
标签:框架 编辑器 特性 Unity 构建 Test Inspector 链接 HTFramework


更新日期:2020年11月6日。
Github源码:​​​[点我获取源码]​​​ Gitee源码:​​[点我获取源码]​

索引

  • ​​框架实用特性​​
  • ​​LnkTools特性(快捷工具)​​
  • ​​CSDNBlogURL特性
  • ​​GithubURL特性(链接Github仓库)​​
  • ​​GiteeURL特性(链接Gitee仓库)​​
  • ​​Remark特性(文字备注)​​
  • ​​RunTimeAssembly特性(运行时程序集)​​
  • ​​LockTransform特性​​
  • ​​Builder框架构建器​​
  • ​​Builder构建前置条件​​

框架实用特性

框架里包含一些运行时或编辑器内使用的特性,他们对于初次使用者来说很可能是未知的,所以在这里进行统一的罗列。

LnkTools特性(快捷工具)

LnkTools特性(快捷工具)只能标记于静态方法,且只能用于编辑器内,他可以将你的静态方法注册到快捷工具栏,以便于一键完成你的自定义操作。

如下,我们新建一个编辑器脚本TestLnkTools

【Unity】 HTFramework框架(三十四)框架实用特性_ide


在其中键入代码:

public class TestLnkTools
{
[LnkTools("我的工具")]
private static void Test()
{
GlobalTools.LogInfo("呼叫我的工具!");
}
}

然后回到编辑器,编译完成后,工具栏中便出现了我们自定义的工具:

【Unity】 HTFramework框架(三十四)框架实用特性_unity_02


点击【我的工具】:

【Unity】 HTFramework框架(三十四)框架实用特性_ide_03

CSDNBlogURL特性(链接CSDN博客)

CSDNBlogURL特性(链接CSDN博客)只能标记于类,且目标类必须是继承至HTFEditor的编辑器类,他用于修饰一个对象在Inspector面板的显示界面,CSDNBlogURL特性可以快速链接至一个CSDN博客url,以便于用户在使用你的代码出现疑问时,可以快速定位到你的帮助文档。

如下,我们为已有类型Test新建一个Inspector修饰类TestInspector

【Unity】 HTFramework框架(三十四)框架实用特性_ide_04


在其中键入代码:

[CSDNBlogURL("你的CSDN博客地址")]
[CustomEditor(typeof(Test))]
public class TestInspector : HTFEditor<Test>
{
protected override bool IsEnableBaseInspectorGUI => true;

protected override void OnInspectorDefaultGUI()
{
base.OnInspectorDefaultGUI();
}
}

然后回到编辑器,查看Test组件的Inspector面板:

【Unity】 HTFramework框架(三十四)框架实用特性_ide_05


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面板:

【Unity】 HTFramework框架(三十四)框架实用特性_ide_06


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面板:

【Unity】 HTFramework框架(三十四)框架实用特性_Test_07

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上之后:

【Unity】 HTFramework框架(三十四)框架实用特性_unity_08

Builder框架构建器

Builder框架构建器为在Unity默认构建器上进一步封装的专用构建器,他秉承了框架的特性:只有包含框架主体的入口场景才能被允许构建,其他场景将只能以资源形式打入AB包。

Builder构建前置条件

Builder构建时允许设置前置条件,只有前置条件全部满足,才允许构建项目,这适用于一些构建操作频繁的项目,以防止错误构建,或未完成构建前初始化便企图构建。

任意编辑器脚本中键入如下代码:

[InitializeOnLoadMethod]
private static void CheckBuild()
{
//CheckBuildPreconditions 为项目构建前置条件集合,任意一个条件返回false,都将禁止构建
Builder.CheckBuildPreconditions.Add(Check);
}

private static bool Check()
{
//如果已封版本,则允许构建
return Version.blocked;
}

打开构建器,如果条件检测未通过,将无法构建,以避免错误的构建浪费大量时间:

【Unity】 HTFramework框架(三十四)框架实用特性_Test_09


标签:框架,编辑器,特性,Unity,构建,Test,Inspector,链接,HTFramework
From: https://blog.51cto.com/u_15911199/5934055

相关文章

  • Unity 资源管理插件
    之所以写这个插件呢,就是为了方便整理项目中的资源文件,我记得之前好像也用了这么一个插件,但是也没去找,还是自己动手写一个吧,需要什么功能就看自己的需求。在项目的过程中呢,已......
  • 【Unity】 HTFramework框架(三十三)XLua热更新
    更新日期:2020年3月20日。Github源码:​​​[点我获取源码]​​​Gitee源码:​​[点我获取源码]​​索引​​XLua热更新简介​​​​使用XLua热更新​​​​创建XLua开发环境......
  • 【Unity】 HTFramework框架(三十二)授权验证
    更新日期:2020年3月2日。Github源码:​​​[点我获取源码]​​​Gitee源码:​​[点我获取源码]​​索引​​授权验证简介​​​​使用授权验证​​​​取消永久授权​​​​......
  • Unity插件 - MeshEditor(八)模型镜像特效
    将静态模型(带MeshFilter)按指定轴向、指定距离克隆一个镜像物体出来,思路很简单,将模型的顶点坐标按指定轴取反,并累加上设定的距离值,然后就完毕了!不过,因为镜像体的顶点镜像于之......
  • 【Unity】 HTFramework框架(三十一)全局设置
    更新日期:2020年3月2日。Github源码:​​​[点我获取源码]​​​Gitee源码:​​[点我获取源码]​​索引​​全局设置简介​​​​使用全局设置​​​​打开全局设置面板​​......
  • unity使用ugui自制调色面板
    突然想实现一个调色面板,然后开工...首先找找有没有什么接口可调,木有找到,找到一些调用win32实现的本地颜色面板的调用,感觉不科学,反正多平台肯定是搞不定的。既然没找到,还是老......
  • 000 通过 Pytorch 实现 Transformer 框架完整代码(带注释)
    #!/usr/bin/python3.9#-*-coding:utf-8-*-#@Time:2021/10/2910:48#@Author:nickchen121#@File:abd_transformer_cyd.py#@Software:PyCharmimportma......
  • Spring框架之控制反转IoC(Inversion of Control)的理解
    简单理解:控制反转就是将代码的调用权(控制权)从调用方转移给被调用方(服务提供方)。解释一下:如果我们需要创建某个类,就需要程序员去修改代码,然后才可以得到想要的类。反转的意思......
  • HTML 内联框架
    iframe用于在网页内显示网页。   添加iframe的语法<iframesrc="URL"></iframe>URL 指向隔离页面的位置。Iframe-设置高度和宽度height和width属......
  • pytest + yaml 框架 -12.支持执行sql 和 断言sql
    前言当我们在测试环境写好自动化的代码,领导说你把代码部署到联调环境再测一测,这时候去改用例里面的配置是很痛苦的。所以我们在设计自动化用例的时候,就先要想到多环境的......