# 常见问题解答

#### 问题：在编辑器下，用离线模式或联机模式运行游戏，为什么游戏里的模型会变成紫色？

如果在打AssetBundle的时候，选定的构建目标是安卓。那么在windows操作系统下，编辑器的默认渲染模式为DX11，我们需要修改编辑器的渲染模式，可以通过UnityHub来修改启动项目的编辑器渲染模式，[参考官方文档](https://docs.unity3d.com/cn/2019.4/Manual/CommandLineArguments.html)。

在Vulkan下打包的编辑器需要加个command -force-vulkan

windows平台添加命令: **-force-gles**

#### 问题：Unity2021编辑器运行游戏提示YooAssets is initialized !

尝试关闭：Project Setting ---> Editor ---> Enter Play Mode Options

#### 问题：YooAsset的DLL引用丢失导致编译报错了

1. 请在PlayerSetting里修改API Level为.NET 4.x或者.NET Framework
2. 关闭游戏工程后，删除Assets同级目录下所有的csproj文件和sln文件。
3. 删除Library/ScriptAssemblies文件夹。
4. 重新打开游戏工程，然后点击某个脚本重新编译。

#### 问题：UnityEditor.Build.Pipeline引用丢失问题

YooAsset依赖于ScriptBuildPipeline（SBP），在PackageManager里找到SBP插件安装就可以了。

#### 问题：使用FileZilla等FTP上传工具后，文件下载总是验证失败

把传输类型修改为二进制就可以了。

#### 问题：打包的时候报错：Cannot mark assets and scenes in one AssetBundle. AssetBundle name is "assets_xxxx_scenes.bundle

Unity引擎不允许把场景文件和其它资源文件一起打包。

#### 问题：WebGL平台运行时报错：Failed to decompress data for the AssetBundle.

WebGL平台不支持资源文件加密。在构建选项里，可以将加密方法设置为空

#### 问题：ClearCacheWhenDirty参数没了吗？

不是很必须的一个功能，已经移除了。可以使用以下方法代替：

````c#
// 参考DEMO的代码
internal class FsmClearCache : IFsmNode
{
    void IFsmNode.OnEnter()
    {
        Debug.Log("清理未使用的缓存文件！");
        var package = YooAssets.GetPackage("DefaultPackage");
        var operation = package.ClearUnusedCacheFiles();
        operation.Completed += Operation_Completed;
    }

    private void Operation_Completed(YooAsset.AsyncOperationBase obj)
    {
        Debug.Log("开始游戏！");
        ......
    }
}
````

#### 问题：YooAsset支持Unity2018吗

YooAsset分俩部分，编辑器代码和运行时代码。因为工具界面是使用UIElements编写的，所以在Unity2019以前的版本是使用不了界面化工具。但是这并没有影响我们使用YooAsset，以下提供一种解决方案。

请先通过Package Manager安装Scriptable Build Pipeline插件。

1. 资源包收集工具替代方案

````C#
// 推荐直接手动编辑资源收集配置文件，在Sample工程里可以找到AssetBundleCollectorConfig.xml的文件，我们直接拿过来做模板。
// 然后通过以下代码来导入配置文件，成功之后AssetBundleCollectorSetting.asset文件会被刷新，就可以运行游戏了。
// 注意：每次修改完XML文件，都需要导入配置文件。
AssetBundleCollectorConfig.ImportXmlConfig("C://Demo//Assets//AssetBundleCollectorConfig.xml");
````

2. 资源包构建工具替代方案

````c#
// 资源包构建可以直接参考教程文档，在文档的最下面有Jenkins支持介绍。
````

资源构建教程：https://github.com/tuyoogame/YooAsset/blob/main/Docs/AssetBundleBuilder.md

3. 资源包报告工具替代方案

````c#
// 我们可以使用Unity2019或更高版本来创建一个包含YooAsset的工程查看构建报告。
````

4. 资源包调试工具替代方案

````c#
// YooAsset支持真机远程调试，我们可以使用Unity2019或更高版本来创建一个包含YooAsset的工程调试。
// 如果想在编辑器下调试，可以仿照编写一个调试界面。
````

