另外你可能需要使用 ALCOM 重装所有 VPM 包,因为第一张图的错误指出
// 第一张图
var isCollisionMatrixSetUp = UpdateLayers.IsCollisionLayerMatrixSetup();
// UpdateLayers.IsCollisionLayerMatrixSetup
public static bool IsCollisionLayerMatrixSetup()
{
bool[,] twoDarray1 = VRC.Tools.OneDArrayToTwoDArray<bool>(UpdateLayers.ProjectSettings.layerCollisionArr, 32 /*0x20*/, 32 /*0x20*/);
int numLayers = UpdateLayers.ProjectSettings.numLayers;
bool[,] twoDarray2 = VRC.Tools.OneDArrayToTwoDArray<bool>(UpdateLayers.GetLayerCollisionArray(), 32 /*0x20*/, 32 /*0x20*/);
bool flag = true;
for (int index1 = 0; index1 < numLayers; ++index1)
{
for (int index2 = 0; index2 < numLayers; ++index2)
{
if (twoDarray1[index1, index2] != twoDarray2[index1, index2])
{
flag = false;
break;
}
}
}
return flag;
}
这里面有空指针,UpdateLayers.ProjectSettings 来自 SDK 的 prefab,这是预编译 DLL 所以你的该错误我不知道具体发生在哪为什么会发生。