Unity编辑器功能及拓展(1) —特殊的Editor文件夹

Unity中的Editor文件夹 是一个具有特殊用途的目录,主要用于存放与编辑器扩展功能相关的脚本和资源。

一.纠缠不清的UnityEditor

我们Unity中进行游戏构建时,我们经常遇到关于UnityEditor相关命名空间丢失的报错,这时候,只得将报错一条条打开,清除无用的命名空间代码片段。

注:在使用vs进行Unity脚本编程时,出现手误时,vs会自动引用相关的命名空间,而有时这些多余的命名空间我们并没有使用到。

回到Editor话题上,在构建时出现Editor相关命名空间丢失报错的原因是:

在打包时,Unity默认不会将任何UnityEditor的内容打包,如果存在,将无法构建,出现报错。

解决方法:使用预编译指令(需要在游戏脚本中使用编辑器功能时)

对于需要使用编辑器功能的代码,只要确保游戏运行后对他没有用,可以使用 # if UnityEditor 和 # end if 将其包裹,被包裹的代码在打包时将会被忽视掉。

二.Editor脚本特殊属性

(这里特指使用UnityEditor命名空间的脚本)

1.仅限编辑器环境运行

Editor文件夹内的脚本(如继承自EditorWindowEditor的类)仅在Unity编辑器中生效,不会被打包到最终构建的游戏或应用程序中

2.脚本编译优先级

Unity将Editor文件夹中的脚本分配到不同的编译阶段 (例如在Editor编译组中),确保这些脚本可以引用其他运行时脚本,但运行时脚本无法反向引用Editor脚本,避免构建错误。

3.自定义工具开发

用于创建编辑器工具,常用用途如下:

1.自定义Inspector面板

我们可以编写Editor脚本来完善目标正常游戏脚本的组件面板

例如,我们可以不在游戏脚本中使用特性命令而实现丰富面板信息功能

2.自动化资源导入处理

3.拓展菜单功能

通过Editor脚本实现编辑器面板下的菜单功能拓展。

这些功能我后面会继续深入学习总结。

三.Editor文件夹注意事项

1.路径规则

命名位置:必须直接或间接位于Assets目录下,文件夹名称必须为Editor(大小写敏感)

和Resources文件夹类似,Unity支持项目中存在多个Editor文件夹(可能用于不同功能模块的独立管理),Unity会自动合并处理。

2.避免运行时依赖

若游戏脚本(如MonoBehaviour)引用了Editor文件夹内的代码,会导致构建失败,需严格隔离编辑器与运行时逻辑。

Editor文件夹下的Mono脚本不可用,使用也无意义,Editor文件夹下存放任何游戏逻辑都是不合理的,在其中的MonoBehavior也会完全失效。

尝试挂载Editor文件夹下的MonoBehaviour脚本(下图)

3.特殊文件夹冲突

若同时存在Plugins/EditorEditor文件夹,Unity会优先编译Plugins/Editor中的脚本。

本篇完~

相关推荐
VidDown16 天前
VidDown 工具站:免费、本地优先的开发者工具箱
javascript·编辑器·音视频·视频编解码·视频
VidDown16 天前
显卡处理视频技术详解:从硬解码到 NVENC,GPU 如何让视频处理起飞?
javascript·编辑器·音视频·视频编解码·视频
夜猫逐梦16 天前
【UE基础】03.蓝图与编辑器工作流
编辑器·ue·蓝图·ue编辑器
VidDown16 天前
视频帧率技术详解:从 24fps 到 120fps,帧率如何影响你的观看体验?
网络·网络协议·编辑器·音视频·视频编解码·视频
叶帆16 天前
【YFIOs】用C#开发硬件之设备上云
开发语言·unity·c#
爱就是恒久忍耐16 天前
VSCode里如何比较2个branch
ide·vscode·编辑器
久数君16 天前
AI三维建模工具“造形家”:地理场景三维化的高效解决方案
unity·glb·ai算法·ai三维建模工具·地图框选·造形家·城市建筑模型
bloglin9999916 天前
vscode中可视化的合并分支,在“合并编辑器中解析”中“与基线进行比较”是什么意思
ide·vscode·编辑器
会思考的猴子17 天前
Unity VFX 属性 Postion 和 TargetPostion
unity
zyplayer-doc17 天前
企业知识库安全与权限管理完全指南:从加密到审计的六层防护
人工智能·安全·pdf·编辑器·创业创新