当前位置: 代码迷 >> 综合 >> CustomPlugins:Base
  详细解决方案

CustomPlugins:Base

热度:61   发布时间:2023-11-24 00:58:28.0

在这个基础包里面主要是对脚本组件的自定义插件的扩展进行搭建的基础框架,除此之外还有几个工程中使用频率较高的功能也集成到了基础包里面。

一、插件扩展的基础框架

 

HierarchyPriority:层级结构优先级

我们的自定义插件的添加方式是多样式的:

1.传统的添加方式

        1.1选择场景物体-Add Component

         

        1.2选择场景物体-Component菜单栏添加

         

        1.3选择场景物体-Project/Assets找组件拖拽添加

         

2.新颖的添加方式

        2.1选择场景物体-自定义菜单栏添加

        

        2.2选择场景物体-层级面板右键添加

          

        因为右键添加方式较为便捷,但是又有可能因为系统的菜单优先级显示问题而不能将我们设置的自定义菜单无法显示,从而独立设置了一项HierarchyPriority用来提升自定义插件在右键菜单的优先级显示的问题。

        

         从代码中可以看出,这个类作为一个按钮去使用的。最主要的目的就是让自定义插件的优先级进行强制提升,防止因为优先级的问题显示不了。还有一个目的就是告诉插件的当前使用者这个插件包的所有功能的封装在命名空间CustomPlugins下。

         

PackageImport:插件导入

同样我们的自定义插件做成.unitypackage后的导入方式也是多样化的。

1.传统方式

        1.1Project/Assets右键导入

        

        1.2磁盘目录双击或拖拽导入

        

2.新颖的导入方式

        插件包工具箱菜单栏下的导入

        

         这个从一个固定的磁盘位置打开文件浏览器选择要导入的插件,这个固定的磁盘位置可以是公司的文件服务器,这样开发团队就可以进行插件自由共享了。

·     

         这个目录的设定在这里进行自定义的,这里可以是FPS局域共享目录也可以是服务器的一个位置。

         

TemplateFolderWindow:一键模板目

        这个是为了规范化工程中常用的目录结构而使用的功能。

        

         

 需要补充的内容:

1.插件包的菜单栏标题设定

        

        

         

         

         

2.插件的颜色搭配设定

         

         

二‘、频率使用较高的功能

DebugExtend:日志打印扩展

1.一个有颜色的日志

        public static void Log(string line, Color color),一条自定义颜色的日志

        public static void Log(string line)

        public static void LogWarning(string line)

        public static void LogError(string line)

        级别日志颜色的设定

        

         

2.字符串富文本

        public static string Str2RichColor(string msg, Color color),颜色富文本

        public static string Str2RichSize(string msg, int size),字体尺寸富文本

        public static string Str2RichBold(string msg),粗体富文本

        public static string Str2RichItalic(string msg),斜体富文本

FileLocation:文件常见路径

        FLocation使用枚举对常用目录路径进行设定

        

         

         

         值得注意的是如果枚举是Absolute绝对路径,那返回的是空字符。 

        

Singleton:单例

        1.组件单例MonoSingleton

        ??????? 

        2.组件单例MonoSingletonS

         ???????

         3.类单例

         

EditorComponent:脚本组件编辑器

        重点就是这个脚本组件的编辑器的扩展。

        

        属性要公开(public)的或者非 公开的但具有序列化属性的([SerialzeField])都可以使用。

        

         

         DocName是按钮文档的打开文件

        VideoName是按钮视频的打开文件

        BrowserRUL是按钮网站的打开地址

        文档和视频是作为一个文件放置在一个磁盘目录位置的,具体位置在这里

        

        注意事项:

        1.指定自定义组件类型并集成EditorComponent基类

        

        2.重写的函数

        2.1初始化

        

        这里一定要调用基类一下,base.OnEnable();

        这个函数的作用就是:

        2.1.1调用基类的OnEnable()完成Target属性应用的指定。

         

        2.1.2(可选)指定组件使用参考的资料信息(文档/视频/网站)。

         

        2.1.3对组件的非公开属性字段或者组件的事件类型字段进行查找。

        

         2.2监视面板的绘制

        

        如果进行了base的OnInspectorGUI()的调用就会绘制显示Unity默认的监视面板的组件显示情况,如果禁用就只显示当前自定义绘制的内容。

        这个函数的作用:

        2.2.1 绘制标题

        

         

        记得要在OnDestroy()函数中进行对应标记的移除。

        2.2.2绘制属性、字段和事件

        ???????

        WWHYEditor.Instance.BeginContentArea();

        WWHYEditor.Instance.EndContentArea();

        是一对绘制区域,可以使用指定的背景颜色为界面美化。

         

        2.2.3绘制组件的帮助按钮

        

         

        2.2.4绘制经常使用到的绘制工具类

         自定义的WWHYEditor

        系统的EditorGUILayout

        系统的GUILayout

        系统的GUI

        如果有赋值或者事件添加绑定的操作需要进行属性应用一下

         

         2.3销毁阶段

        

        这个有两个作用:一是base.OnDestroy()的调用(销毁三个按钮的使用参考标题),二是销毁当前绘制里面使用到的标题。 

  相关解决方案