都是 Unity 的错!!(Unity 报错合集与解决方案)
- 前言 / 目录
- Win32Exception:
- 通用错误
- An abnormal situation has occured:
- Could not fetch fresh config file. Using cached if available.
- Unauthorized, try logging out and in again
- lllegal byte sequence encounted in the input. Parameter name: string
- Avatar 错误
- Avatar validation failed
- Failed to build the avatar
- Failed to upload avatar!
- Error building Player because scripts had compiler errors
- UploadException:
- Failed to upload file.
- AssetBundle was not built
- Attempted to load the data for an avatar we do not own, clearing blueprint lD
- The response was null. State: Error
- Client Simulator 报错
- UnityEngine.Debug:LogError
- Shader error in ***
前言 / 目录
欢迎来到 Unity 报错集合与解决方案文档!在这里寻找 Unity 报错并了解相应的解决方案。
如何识别 Unity 报错?
1、到底是哪里出了问题?
查看你的SDK控制面板,红色框中的内容标志着模型在什么环节出现了问题,橙色框中的内容是出错有关的“详细信息”。
为了将你的资产打包发送到 VRC 服务器,SDK 会走过三个流程:构建、验证、上传。
构建和验证被 SDK 统称为构建。
如果你的红色框文字显示为 Build Failed,这意味着世界/虚拟形象的构建或验证环节出现了问题,你需要再查看橙色框中的内容以确认具体是哪个环节出现了问题。
接下来要查看 Console(控制台) 以寻找真正的错误原因。
2、检查你的 Console(控制台)
Console 面板的右上角有白黄红三个标志,分别意味着 信息, 警告, 错误。你只需要查看 错误 即可锁定自己的问题。
你需要在右上角分别点击 信息 和 警告 按钮一次,这会仅显示 错误日志,也就是所有“有用”的信息。
不了解报错的含义也没关系,我们准备了一个表格,用来帮助你更快地点对点纠错。
常见错误
此表格还需要更多补充和审查
解决方法处写有“网络问题”意味着你需要参考《VRChat 网络困境指南》。
构建错误
|
原文 |
含义 |
解决方法 |
|
Please fix compile errors before creating new state machine behaviours |
请在创建新 StateBehaviour 前修复编译错误 |
工程存在脚本编译错误,需要修复 |
|
Error while saving Prefab: '{}'. You are trying to save a Prefab with a missing script. This is not allowed. |
Avatar 中包含缺失脚本的引用 |
使用 ALCOM 安装缺失的 VPM 包,一般是 Modular Avatar |
|
构造托管string对象时,字节序列不是有效编码主机名包含非 ASCII 字符。可能原因是主机名包含非 ASCII 字符,或工程文件夹及其路径包含非 ASCII 字符 |
将主机名和工程文件夹及其所在路径重命名为纯英文后重新上传 |
|
|
脚本编译失败,因为存在编译错误。可能原因是工程文件夹及其路径包含非 ASCII 字符 |
将工程文件夹及其所在路径重命名为纯英文后重新上传 |
|
|
An abnormal situation has occured:the PlayerLoop internal function has been called recursively. |
PlayerLoop 内部函数被递归调用。可能原因是工程文件夹及其路径包含非 ASCII 字符 |
将工程文件夹及其所在路径重命名为纯英文后重新上传 |
|
This avatar uses Visemes but the Face Mesh is not specified. |
Avatar 使用了 Visemes 但是没有指定面部网格 |
正确配置 LipSync 的 Face Mesh |
|
The VRCSDK build was aborted because the VRCSDKPreprocessAvatarCallback '{name}' reported a failure. |
VRCSDK 构建终止,因为 VRCSDK 预处理回调 '{name}' 报告了不可恢复错误 |
咨询你身边的 Unity 编程高手。认真的。 |
验证错误
|
原文 |
含义 |
解决方法 |
|
VRCExpressionParameters has too many parameters defined. |
网络同步的 VRC Expression 参数超过 256 bits |
尝试删除一些需要同步参数的功能或预制件 |
|
VRCExpressionsMenu uses a parameter that is not defined |
VRC Expression Menu 引用了未在 VRC Expression Parameter 中注册的参数 |
菜单使用的参数应该被添加到参数列表中 |
|
Images used for Actions & Moods are too large. |
VRC Expression Menu 使用了尺寸大于 256×256 的图片 |
菜单图片尺寸应当小于等于 256×256 |
|
Phys Bone Components: {n} - Avatar exceeds the maximum limit (256) of this component type. |
使用了 '{n}' 个 VRC PhysBone 组件,最多 256 个 |
尝试减少 VRC PhysBone 组件的使用 |
|
Contact Component Count: {n} - Avatar exceeds the maximum limit (256) of this component type. |
使用了 '{n}' 个 VRC Contact 组件,最多 256 个 |
尝试减少 VRC Contact 组件的使用 |
|
This avatar has mipmapped textures without 'Streaming Mip Maps' enabled. |
Avatar 使用了开启 Mipmap 但未开启 Streaming Mip Maps 的纹理 |
在 SDK 面板对应的警告上使用 Auto Fix 或手动开启纹理的 Streaming Mip Maps |
上传失败
|
原文 |
含义 |
解决方法 |
|
上传文件失败 |
网络问题 |
|
|
Could not fetch fresh config file. Using cached if available. |
SDK 无法获得最新的在线配置更新 |
网络问题 |
|
"Missing Credentials" |
IP 变动导致登录会话失效 |
网络问题,每次 IP 变动后需要重启 Unity 或 Reload SDK 后重新登陆 |
|
未授权,请重新登录并重新尝试 |
网络问题,每次 IP 变动后需要重启 Unity 或 Reload SDK 后重新登陆 |
无关信息
|
原文 |
含义 |
解决方法 |
|
Attempted to load the data for an avatar we do not own, clearing blueprint lD |
无法加载不属于你的虚拟形象数据,正在清除蓝图 lD |
只要初次上传失败就会出现该日志,没有实际意义 |
其它错误
和构建上传 VRChat Avatar 无关的其它常见错误及其解决办法:
|
症状描述 |
解决办法 |
|
材质是紫色的 |
没有导入对应着色器包,请阅读安装手册并正确导入。一般是 lilToon;或材质与模型是分开的包,请先导入材质再导入模型 |
|
无法打开 VRCSDK 面板,控制台提示“Could not fetch fresh config file. Using cached if available” |
SDK 无法获得最新的在线配置更新,可能是网络问题 |
|
lilToon 材质检查器上的文本都消失了 |
使用 ALCOM 重装 lilToon |
|
出现编译错误,控制台提示“The Type or namespace name 'lilToonInspector' could not be found” |
更新使用了 lilToon 代码的插件或手动创建程序集定义引用 lilToon 程序集,因为 lilToon 2.0 关闭了程序集自动导出。 |
|
Viseme 不工作 |
LipSync 混合形状没有全部指定,或任意 Playable Layer 控制器中任意动画录制了 lipsync 混合形状 (即使该动画没有播放) |
|
VRCSDK 卡在 Building 状态没有任何响应 |
你是否双击了 prefab 并尝试上传?请创建场景将 prefab 拖进场景中再尝试上传 |
|
录制动画时 Avatar 变成骑自行车姿势,但取消动画录制后变不回去了,我该怎么办? |
这是 Unity 的 Bug。请不要将 Avatar 完全解压缩到场景中,请使用 prefab 和 prefab variant 以避免不可恢复的破坏修改 |
有搞不懂的问题?
如果您遇见了搞不懂的报错,您可以试着加入 QQ群聊 750258838 分享您的问题,群内的大佬会提供解答。
有想要分享的经验?
如果您有想要分享的报错或解决方法,您也可以选择成为一名 内容作者,内容作者可以直接编辑此文档。
您还可以在下方评论区留言,分享您的见解与看法。
Win32Exception:
通用错误
An abnormal situation has occured:
the PlayerLoop internal function has been called recursively. Please contact Customer Support with a sample project so that we can reproduce the problem and troubleshoot it.
翻译:
PlayerLoop 内部函数被递归调用。请联系客户支持并提供示例项目,以便我们可以重现问题并排除故障。
解决方法:
不用慌,试着修改你的计算机名称至纯英文(符号为半角)后重载一次 SDK,群内发生过相似案例。
Could not fetch fresh config file. Using cached if available.
网络问题!这意味着您的 SDK 无法获得最新的配置更新,请查看 VRChat 网络困境指南 | VRCD 文档库 以了解相应的解决方法。
Unauthorized, try logging out and in again
当前会话超时(你的登录失效了~)
重新登录SDK即可
lllegal byte sequence encounted in the input. Parameter name: string
解决方法
- 请试着将自己的设备名修改为 半角英文+阿拉伯数字,并重新尝试上传。
- 项目所在的文件夹路径修改为 半角英文+阿拉伯数字,并重新尝试上传。
为什么会发生这种事?
Unity 使用的 Mono 运行时在 Windows 平台上调用外部函数时,无法正确处理非 UTF8 字符串编码,因此出现错误“在(C# 函数参数)输入中遇到非法字符串”。
关于上述错误的相关技术讨论
System.Reflection.Assembly.GetName方法存在的问题:
- 关于 Mono 错误将 Windows 字符串当作 UTF8 处理的问题:
素材来自群友 小稳流星 。
Avatar 错误
Avatar validation failed
虚拟形象构建成功,但构建结果不满足 VRCSDK 的要求。
Failed to build the avatar
你的虚拟形象构建失败辣!!虚拟形象或 Unity 工程存在某种错误导致无法完成构建。
你需要寻找 更多的报错 以了解具体原因(((
Failed to upload avatar!
虚拟形象上传失败辣!是网络问题~
Error building Player because scripts had compiler errors
构建玩家错误,因为脚本有构建错误~
你的工程路径有中文,要改成英文才行~
UploadException:
Failed to upload file
上传文件失败,一般是网络问题,请阅读 VRChat 网络困境指南 以寻找解决方法。
Failed to upload file.
上传文件失败,一般是网络问题,请阅读 VRChat 网络困境指南 以寻找解决方法。
AssetBundle was not built
资源包未构建!
解决方法
1、试着在虚拟形象结构中寻找空的或无法加载的脚本,并将其删除。
Attempted to load the data for an avatar we do not own, clearing blueprint lD
翻译:
无法加载我们不拥有的虚拟形象数据,正在清除蓝图 lD
VRC 的神奇 API bug,一般是网络问题,请阅读 VRChat 网络困境指南 以寻找解决方法。
The response was null. State: Error
需要看具体情况:
Exception: System.Net.Sockets.SocketException (0x80004005): Could not resolve host 'api.vrchat.cloud'
网络问题!这意味着您的 SDK 无法获得最新的配置更新,请查看 VRChat 网络困境指南 | VRCD 文档库 以了解相应的解决方法。
Client Simulator 报错
In order to use clentsim, you must first update your project settings! Open the ClientSim Settings Window and apply the settings to your project.
翻译:
要使用 ClentSim,您必须首先更新您的项目设置!打开 ClientSim Settings 窗口并将设置应用于您的项目。
解决方法:
不要听他的屁话,打开 VRChat SDK 控制面板,来到 builder 子页面,点击 setup 让 SDK 自动恢复 client sim 错误即可解决该问题。
该错误可能会出现在错误导入影响 layer 的 pack 中。
素材来自群友 ·
UnityEngine.Debug:LogError
Shader error in ***
翻译:
着色器***出错
顾名思义,着色器出错啦!!!试着检查一下报错了的着色器,以下这些是你可以尝试着进行的操作:
- 检查着色器并想办法自己解决着色器报错(高手专属)
- 重新导入插件与着色器
- 联系着色器作者寻求帮助
示例:
这是来自群友 shiro-WN 的报错示例~