unity导出.obj模型文件
最近使用realworldterrain生成真实地形遇到一个问题,就是该地形的坐标轴没有在中心位置,这样在旋转缩放操作时候就有各种问题,效果不好,于是想到先导出该地形为obj文件,然后在Max中修改其坐标轴位置。
一、将地形导出为obj文件
在unity中新建js脚本ExportTerrain.js,且必须放在Assets文件夹下的Editor文件夹中。(js文件不要用vs编译,要用自带的mono编译器。)
import System.IO;
import System.Text;
enum SaveFormat {Triangles, Quads}
enum SaveResolution {Full, Half, Quarter, Eighth, Sixteenth}
class ExportTerrain extends EditorWindow
{
var saveFormat = SaveFormat.Triangles;
var saveResolution = SaveResolution.Half;
static var terrain : TerrainData;
static var terrainPos : Vector3;
var tCount : int;
var counter : int;
var totalCount : int;
@MenuItem ("Terrain/Export To Obj...")
static function Init ()
{
terrain = null;
var terrainObject : Terrain = Selection.activeObject as Terrain;
if (!terrainObject)
{
terrainObject = Terrain.activeTerrain;
}
if (terrainObject)
{
terrain = terrainObject.terrainData;
terrainPos = terrainObject.transform.position;
}
EditorWindow.GetWindow(ExportTerrain).Show();
}
function OnGUI ()
{
if (!terrain)
{
GUILayout.Label("No terrain found");
if (GUILayout.Button("Cancel"))
{
EditorWindow.GetWindow(ExportTerrain).Close();
}
return;
}
saveFormat = EditorGUILayout.EnumPopup("Export Format", saveFormat);
saveResolution = EditorGUILayout.EnumPopup("Resolution", saveResolution);