从带有外观的3ds MAX导入后,我的游戏中网格会反转为单位

时间:2016-05-04 18:01:49

标签: javascript c# unity3d 3dsmax

从带有皮肤的3ds MAX导入后,我的游戏中网格被反转为单位

网格和法线看起来都是“倒置”,就好像我在看某种幽灵一样。

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

1 个答案:

答案 0 :(得分:2)

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

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

第3步:附加此c#脚本,并仅运行ONCE。

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脚本,然后仅运行ONCE:

#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导出失败。