unity3d导出obj模型
许多朋友不清楚如何在Unity3D中导出OBJ模型,本文将为大家详细分享具体的方法步骤,希望对大家的学习有所帮助。
脚本放置位置
首先,将下面的脚本放在项目目录下资源文件夹的Editor里。
导出地形步骤
若要导出地形,需先在场景中选中地形对象。若未进行选择,系统将默认使用当前场景中可用的地形。具体操作如下:
- 从
Terrain菜单下选择Export To Obj...。 - 在分辨率窗口中,选择所需的网格结构,可在四边形和三角形网格结构中进行选择。
- 同样在该窗口,还能选择要导出地形的分辨率,提供了高、中、低等多种选项。
- 点击
Export,然后选择要保存的位置和文件名,OBJ文件即可完成导出。
需要注意的是,如果选择大面积的Full地形进行导出,最终生成的OBJ文件会非常大,并且导出过程也会耗费较长时间。
ExportTerrain.js脚本代码
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);
if (GUILayout.Button("Export")) {
// 后续导出逻辑可根据实际情况补充
}
}
}
以上就是在Unity3D中导出OBJ模型的详细步骤和相关脚本代码,按照上述操作即可完成地形的OBJ文件导出。