unity3d导入模型fbx

2015年02月26日 14:19 0 点赞 0 评论 更新于 2025-11-21 16:28

在使用Unity3D导入FBX模型时,这是一个较为常见的问题,主要原因是Unity3D(U3D)与3ds Max(MAX)的单位不一致。下面为你介绍常用的解决方法。

方法一:修改导入设置

可以直接将模型导入的缩放比例从0.01调整为正常比例。具体做法是直接修改U3D的Editor类的导入设置。在Editor文件夹中添加以下脚本(路径:Assets/Editor/FBXScaleFix.cs),这样每次导入模型时,其大小会直接变为正常的单位1。

using UnityEditor;

public class FBXScaleFix : AssetPostprocessor
{
public void OnPreprocessModel()
{
// 获取模型导入器
ModelImporter modelImporter = (ModelImporter)assetImporter;
// 设置全局缩放比例为1
modelImporter.globalScale = 1;
}
}

关于物理缓存消耗的争议

有一种说法认为,直接将模型的缩放比例从0.01改成1会比较消耗物理缓存。但实际上,模型是矢量的,其顶点数并不会改变,从理论上来说不应该额外消耗物理缓存。而且在U3D官方论坛中并没有这种说法,然而在国内却流传较广,目前也没有确切的依据来证实这一说法。

不修改缩放比例的处理方式

其实,不修改这个0.01的缩放比例也不会有太大问题,不过需要在模型从MAX导出时就将其放大100倍。那么为什么要统一单位规范呢?这主要是因为U3D的物理系统对单位比较敏感,如果单位不一致,像物体的移动、力矩、冲量以及重力等物理效果都会受到影响。

作者信息

boke

boke

共发布了 3994 篇文章