地形

关于Terrain.activeTerrain的提问??
由 cartoonboy 于 星期二, 06/01/2010 - 17:48 发表我把var terrainHeights = Terrain.activeTerrain.terrainData.GetHeights( 0, 0, xPolyDivision, zPolyDivision);
改为var terrainHeights = GetComponent(Terrain).terrainData.GetHeights( 0, 0, xPolyDivision, zPolyDivision);
这句报错:terrainHeights[i,j] = hit.point.y/Terrain.activeTerrain.terrainData.size.y;
不明白是什么原因。为什么用activeTerrain就可以呢?? 当我在场景中创建一个Terrain时,还不都是指向同一个Terrain吗??请高手指教!!
- 4 条评论
- 593 次点击
unity3d中地形的制作
由 u8 于 星期二, 10/13/2009 - 09:59 发表Unity3D手册中介绍了两种地形制作方法:
一、在SceneView中使用height tools直接绘制
二、使用外部工具制作的heightmaps
直接绘制地形很简单,不过只适合小面积地图的制作,对于真实游戏项目来说,这样拉地形实在太复杂,一般我们都会使用外部工具,比如PS,比如max来制作高度图,然后导出为一张灰度图,在引擎中将其转换为地形。
Unity3D也支持了这种做法,即导入HeightMap的方式,不过对HeightMap的格式有一个限定,必须是16bit的RAW格式灰度图,但是除此之外手册中再没有更多的描述。
没关系,Unity3D提供了将地形导出为HeightMap的方法,我们可以做一张小地图将其导出来,看一看就知道了。
如下图所示,将地形长宽高都设定为2个单位,地形精度设定为33,这个数值是能够设置的最小值了。这样就表示在一个单位内会有17个高度值,即16条边。然后把这个地形导出为16bit Raw格式文件。


