从带有皮肤的 3ds MAX 导入后,我的游戏内网格统一反转

My in-game meshes are inverted in unity after importing from 3ds MAX with skin

从带有皮肤的 3ds MAX 导入后,我的游戏内网格统一反转,

网格和法线看起来 "upside down",就像我在看某种幽灵一样。

如果我取消选中皮肤,它会正常工作。

第 1 步:设置模型并导出为 FBX。

第 2 步:统一导入。顶点和法线将被翻转。

第 3 步:附加此 C# 脚本,并且 运行 仅一次。

public class meshInverter : MonoBehaviour {

    // Use this for initialization
    void Start () {
        Mesh mesh = GetComponent<SkinnedMeshRenderer>().sharedMesh;
        mesh.triangles = mesh.triangles.Reverse().ToArray();
    }

    // Update is called once per frame
    void Update () {

    }
}

第 4 步:删除最后一个脚本,附加此 JS 脚本,运行 仅一次:

#pragma strict
import System.Linq;
function Start () {
    var mesh = (transform.GetComponent("SkinnedMeshRenderer") as SkinnedMeshRenderer).sharedMesh;
    var normals : Vector3[] = mesh.normals;
    for (var i=0;i<normals.Length;i++){
        normals[i] = -normals[i];
    }
    mesh.normals = normals;
}

function Update () {

}

第 5 步:删除最后一个脚本,现在模型已修复。

编辑

还要确保您的骨骼 o 网格没有任何负比例,这也可能会搞砸并且不会是 .fbx 导出失败。