【解决】“Method“ should not be used to create a file within StreamingAssets folder. Path=“XXX/XXX/XX“...

开发平台:Unity
编程平台:Visual Studio 2020以上
使用语言:C#

问题描述

原译 CreateAsset() should not be used to create a file within StreamingAssets folder. Path=‘Assets/StreamingAssets/ScriptableObject 1.asset’. This error will in a future release be changed to an exception.
现译 不应使用 CreateAsset() 在 StreamingAssets 文件夹中创建文件。Path=‘Assets/StreamingAssets/ScriptableObject.asset’。此错误将在将来的版本中更改为异常

注意:这是一个对于 Unity 资产结构认知不足所导致的问题。

相关问题的补充说明


Unity 为方便开发者管理工程资产信息,提供了 Assets 与 Package 两种目录的视图供开发者使用。其中 :

  • Assets 主要集中管理 外部非标准化资产(自建资产、商店资产)的内容。
    在这些资产被导入至编辑器中时,会转换成转服务于 Unity 引擎的特定资产,其特定信息存储至同路径下 .meta 文件中以供 Unity 访问。
  • Package 主要处理由 Unity 承认的官方工具包、第三方工具包资产信息。
    例如 Package Manager 中的 Cinimachine、AR Foundation。当然,现版本下同时支持 Git URL 下载 Git 资源。通常这类资源被定义于提升开发效率的编辑扩展框架。

  但考虑到实际开发过程中需求,Unity 提供了 Plugins、StreamingAssets 等特殊目录结果的文件夹。这些文件夹被允许出现在 Unity Project 视窗中,但仅局限于存放非 Unity 官方承认的自建资产信息。例如 ScriptableObject 这类自建资产。所以解决方法也随之明了。
 ’

解决方案


方案一:使用 Unity 承认的目录路径

  • 在 Assets 目录下新建非特定目录的文件夹用以存放 ScriptableObject 资产。

方案二:使用 EXCEL\TXT\JSON\XML等数据文件替代SO资产(针对于PC用户的解决方法)

  • 部分情况的开发,我们仅期望外部修改配置文件以达到实际需求时,应考虑使用 EXCEL 等第三方数据存储作为首选目标。
    注意:若 SO 存储数据包含场景内预制体信息,则应适当考虑将 预制体相对路径信息写入配置表,以供调用。或考虑热更新实现该模块的数据更新。

猜你喜欢

转载自blog.csdn.net/qq_51026638/article/details/125143081