Blender export file to unity problem

【開發分享】03 Blender輸出至Unity 的Axis 錯誤問題

背景:

  1. 在Blender製作物件, 一般都是用x-y為水平面, z軸為垂直。
  2. 輸出後, 拖至Unity, Scene View中是看不到問題, 但在物件的Transform.Rotation.X會係-90。
  3. 因為Unity認為y才是垂直軸, 而不是Bug。
  4. Unity也會幫手作出這個-90修改, 一般操作是不會有事, 但是..!!!

問題:

  1. 如上圖, 如果嘗試運用物件的mesh, (綠色線是mesh), 就會出現mesh與物件有90度差距。
  2. 原因是上述-90修正的只是物件, 而不是mesh本身。
  3. 因此, 當使用如Mesh Collider這些需要Mesh Object操作的東西時, 便會出現錯誤, 如錯誤觸發Collider的Trigger。

解決步驟:

  1. 網上有一些Blender script或Unity script, 效果不太理想。
  2. 本方法會在Blender Export前作修改。
  3. Save as 一個新Blender file.
  4. Edit mode > R X -90
  5. Save
  6. 直接使用Blender file放在 Unity Project 的Asset Folder內。請參閱 【開發分享】02 快速製造物件及套上Texture
  7. 再使用mesh時, 如上圖, 便會方向正確, 而且不需要Transform.Rotate.X -90作修正。
  8. 補充: 修改後, Blender: num-pad 7 = front view; num-pad 1 = bottom view
  9. 補充: Unity, top = y axis; left = x axis