下面的脚本放在项目文件的资源目录的Editor文件夹下.
当Terrain菜单下出现Object to Terrain时,在场景视图或者层次面板选择一个对象,这个对象将转变外高度图用于地形.这个对象必须包含网格.如图:
这个函数用的是和网格轴相同的包围盒,如果对象在x轴和z轴有旋转.或者y轴有90度以上旋转时.可能会有 奇怪的结果.
你可能要调整地形的高度匹配你的网格对象(可以使用Terrain菜单下的Set Resolution…).
下面 为Object2Terrain.js脚本内容
01 |
@MenuItem ("Terrain/Object to Terrain") |
|
02 |
|
03 |
static function Object2Terrain () { |
|
04 |
// See if a valid object is selected |
05 |
var obj = Selection.activeObject as GameObject; |
|
06 |
if (obj == null) { |
07 |
EditorUtility.DisplayDialog("No object selected", "Please select an object.", "Cancel"); |
|
08 |
return; |
09 |
} |
|
10 |
if (obj.GetComponent(MeshFilter) == null) { |
11 |
EditorUtility.DisplayDialog("No mesh selected", "Please select an object with a mesh.", "Cancel"); |
|
12 |
return; |
13 |
} |
|
14 |
else if ((obj.GetComponent(MeshFilter) as MeshFilter).sharedMesh == null) { |
15 |
EditorUtility.DisplayDialog("No mesh selected", "Please select an object with a valid mesh.", "Cancel"); |
|
16 |