发现Blender的模型导入到Unity里面有问题,简单研究了下发现是坐标系不同,Unity使用的是左手坐标系,Blender使用的是右手坐标系 。
下面直接将如何解决
首先忽略Blender的右手坐标系以及Z轴朝上的事,依照unity坐标系情况修改模型物体的旋转,以Blender猴头为例
此时只需在Blender中将猴头绕Z轴向左转90°使猴头朝向X轴方向即可得到我们在unity中需要的正确朝向
然后选中猴头并按快捷键Ctrl+A弹出应用窗口,选择“旋转”即应用旋转,此时会发现原先旋转的Z轴值变为了0(即猴头的初始朝向已修改,同理也可以修改初始位置与尺寸)
然后导出FBX文件,在导出面板调整“变换”内容并勾选“应用变换”(导出到Unity一般设置如下图)
最后将FBX文件导入Unity就会发现物体的朝向完全符合unity坐标系情况
当然,如果物体的朝向不是X轴方向,而是其他轴方向,只需要在导出时调整“前进”与”向上“选项的值即可。
方法:
1.构建一个unity左手坐标系 A(Blender右手坐标系为B),将B的Y轴与Z轴朝向调换即可得到A坐标系
2.然后看当前物体的朝向为A坐标系下的哪个轴,最后将“前进”选项的值设置为该轴值即可,向上也是同样。
此方法能解决大部分物体旋转后导出FBX文件到unity引起的朝向问题,但有些情况下不行(目前我试出来不行的情况为物体在多个轴上都有旋转时不行,如果只在一个轴上有旋转是没问题的,我怀疑和万向节死锁有关).