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

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

一.纠缠不清的UnityEditor

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

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

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

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

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

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

二.Editor脚本特殊属性

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

1.仅限编辑器环境运行

Editor文件夹内的脚本(如继承自EditorWindow或Editor的类)仅在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/Editor和Editor文件夹,Unity会优先编译Plugins/Editor中的脚本。

本篇完~

相关推荐
小李不困还能学2 小时前
VSCode远程开发免密码登录
ide·vscode·编辑器
?? Daisy3 小时前
Codex 接入第三方 API:CLI 与编辑器扩展的配置方法(2026-10)
编辑器
初雪云1 天前
UniApp 云打包拿到 IPA 后,真正的发布工作才刚开始
ios·自动化·编辑器·产品经理·iphone
幸运小圣2 天前
Buffer 新手入门【Node.js】
node.js·编辑器·vim
*wait for?2 天前
VScode使用uv-创建python虚拟环境
ide·vscode·编辑器
lzx_0022 天前
Linux 开发工具(二) 简单认识一下编辑器 —— vim
linux·编辑器·vim
辻弋2014 天前
五年前的旅行视频糊成马赛克?Video2X用Real-ESRGAN逐帧重建细节,但只支持Windows、集显用户建议直接放弃
服务器·数据库·windows·游戏引擎·电脑
Martina_03214 天前
AI生成3D场景导入 Unity/Unreal 后,NPC 总串层?用6步检查导航高度与跨层连接
人工智能·游戏·数学建模·3d·unity·自然语言处理·aigc
golang学习记4 天前
VSCode AI完成任务的仪式感:撒礼花
ide·vscode·编辑器
小贺儿开发4 天前
Unity 局域网遥控幻灯片展示工具 3.0
科技·http·unity·工具·ppt·通信·网页