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

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

框架实用特性

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

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
    }

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;
    }

打开构建器,如果条件检测未通过,将无法构建,以避免错误的构建浪费大量时间:
在这里插入图片描述

禁用框架构建器

定义脚本宏DISABLE_BUILDER可禁用框架构建器,以使用Unity源生构建器,用以摆脱框架构建器的诸多限制(比如只能构建主体场景等),但须注意,构建检测构建前处理构建后处理等功能也将同时被禁用。
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神码编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值