Skip to main content

前言 / 目录

欢迎来到 Unity 报错集合与解决方案文档!在这里寻找 Unity 报错并了解相应的解决方案。

如何识别 Unity 报错?

1、到底是哪里出了问题?

查看你的SDK控制面板,红色框中的内容标志着模型在什么环节出现了问题,橙色框中的内容是出错有关的“详细信息”。

image.png

为了将你的资产打包发送到 VRC 服务器,SDK 会走过三个流程:构建、验证、上传。

构建和验证被 SDK 统称为构建。

如果你的红色框文字显示为 Build Failed,这意味着世界/虚拟形象的构建或验证环节出现了问题,你需要再查看橙色框中的内容以确认具体是哪个环节出现了问题。

image.png

接下来要查看 Console(控制台) 以寻找真正的错误原因。

2、检查你的 Console(控制台)

Console 面板的右上角有白黄红三个标志,分别意味着 信息警告错误。你只需要查看 错误 即可锁定自己的问题。

你需要在右上角分别点击 信息 和 警告 按钮一次,这会仅显示 错误日志,也就是所有“有用”的信息。

image.png

不了解报错的含义也没关系,我们准备了一个表格,用来帮助你更快地点对点纠错。

常见错误

此表格还需要更多补充和审查

解决方法处写有“网络问题”意味着你需要参考《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

lllegal byte sequence encounted in the input.

构造托管string对象时,字节序列不是有效编码主机名包含非 ASCII 字符。可能原因是主机名包含非 ASCII 字符,或工程文件夹及其路径包含非 ASCII 字符

将主机名和工程文件夹及其所在路径重命名为纯英文后重新上传

Error building Player because scripts had compiler errors.

脚本编译失败,因为存在编译错误。可能原因是工程文件夹及其路径包含非 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

上传失败

原文

含义

解决方法

Failed to upload file.

上传文件失败

网络问题

Could not fetch fresh config file. Using cached if available.

SDK 无法获得最新的在线配置更新

网络问题

"Missing Credentials"

IP 变动导致登录会话失效

网络问题,每次 IP 变动后需要重启 Unity 或 Reload SDK 后重新登陆

Unauthorized, try logging out and in again

未授权,请重新登录并重新尝试

网络问题,每次 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 分享您的问题,群内的大佬会提供解答。

50a5f75b5e062688d0b8c4158fdb1eb5.png

有想要分享的经验?

如果您有想要分享的报错或解决方法,您也可以选择成为一名 内容作者,内容作者可以直接编辑此文档。

您还可以在下方评论区留言,分享您的见解与看法。

web 1920.png