欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 幼教 > 【Unity】打包报错类型不存在于命名空间内

【Unity】打包报错类型不存在于命名空间内

2025/11/14 18:44:20 来源:https://blog.csdn.net/Davidorzs/article/details/141924419  浏览:    关键词:【Unity】打包报错类型不存在于命名空间内

1 前言

        这里的打包准确来说是资源包,使用YooAsset进行打包资源时报了这个错误:error CS0234: The type or namespace name 'AssetModificationProcessor' does not exist in the namespace 'UnityEditor' (are you missing an assembly reference?)。本来是可以打包的,但我一顿程序集划分、引用后再打包就报错了。

2 问题

        查询相关资料后,发现似乎是Editor脚本的原因。具体什么原因我也不确定,可能是Editor单独划分程序集后在打包时无法识别?

3 解决

        解决方案也很简单,给Editor脚本加上宏判断即可:

//原来的脚本内容
using UnityEditor;
using ···
···namespace ···
{···
}//加判断宏后
#if UNITY_EDITOR //若是编辑器状态
using UnityEditor;
using ···
···namespace ···
{···
}
#endif

        可以看到,我给整个脚本加了个编辑器状态判断的宏,这样可以理解为非编辑器状态下此脚本内容就不存在了。通常Runtime逻辑也不会去引用Editor逻辑,所以非编辑器状态下隐藏Editor脚本内容也不会出现引用错误。之后测试,打包成功。

4 后记

        核心在于屏蔽掉涉及到Editor的内容。我的方法较为粗暴,直接对整个脚本进行判断,实际也可以只对脚本中涉及到Editor的内容判断,保留不涉及的部分。当然,也要确保屏蔽掉涉及Editor的内容后不会造成保留的内容发生错误。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com