上一章我们讲解了 如何创建一个简单的游戏世界 这一章我们来 看看unity3d中的地形系统 废话少说 赶紧开始吧,,哈哈


 

首先创建一个新的场景 


 

点击菜单栏中的 Terrain-> create Terrain 菜单  



 

完成后如 下图



 

unity地形烘焙地图 unity做地形_贴图


 

 

 

创建地形系统的时候 unity会按默认的 宽高 图像分辨率,纹理分辨率 等创建一个地形  不过不怕 这些我们都可以修改滴  

 

  如果需要在game 窗口(即是游戏运行窗口)中看效果 ,需要调整下摄像机的位置和角度  

操作方式  选中  Hierarchy 中的 main camera 摄像机 然后使用 场景编辑器上面那4 个 功能(拖动,移动,旋转,缩放)进行调节即可 调节过程中就可以再game 窗口中看到效果啦,   各位童鞋 多操作几次就可以熟练操作了


 

点击 Terrain ->resolution 菜单 可以设置地形的各个参数



 

如下图



 

unity地形烘焙地图 unity做地形_ci_02




 

unity地形烘焙地图 unity做地形_unity地形烘焙地图_03



 

如上图所示从上到下分别代表的含义是


 

Terrain Width: 地形的宽度

 


Terrain Height: 地形的高度

Terrain Length:地形的长度

 

HeightMap Resolution:地形高度图的分辨率. 

 

Detail Resolution:细节分辨率,控制草和细节网格地图的分辨率。数值越高标示效果越好,想对也越消耗机器性能,可能会卡。根据情况适当的调节。

 

Control Texture Resolution:控制不同纹理的分辨率。

 

Base Texture Resolution:控制相对纹理分辨率,这里指一定范围内的。



 

设置完毕点击 set Resolution按钮,有兴趣的朋友可以动态的修改一下参数,看看你的地形发生了什么样的改变?


 

修改完后我们来给地形添加点元素吧 


 

选中 Hierarchy 中的 刚刚创建的terrain 地形 右边出现了地形的编辑窗口

 

如图



 




 

unity地形烘焙地图 unity做地形_ci_04



 

上图中 的红框框 讲解  从上 到下


 

1: position 是地形的 位置坐标  

 

   rotation 的旋转坐标

 

   scale   缩放比例

 

   这个位置任何游戏组件都有这 3 个属性



 

2:  这7 个属性 从左往右 分别是 编辑高度、编辑特定高度、设置平滑、纹理贴图、画树模型、画草模型、其他设置.善用着七个工具可以编辑一个非常不错的游戏地形,稍后我会介绍这七个按钮的具体操作流程。



 

 2.1 选中编辑高度   下面出现 barusher 和 settings  属性栏


Brushes:地形绘制画笔,这里有很多种画笔的图案可供我们选择。

 

Brush Size :画笔宽度取值范围

Opacity :画笔高度取值范围

 


 

如图 



 

unity地形烘焙地图 unity做地形_贴图_05


 

各位童鞋 可以修改参数 在地图系统上 绘制 高度 感受这些参数的 意义 



 

unity地形烘焙地图 unity做地形_贴图_06



 

上图是我使用编辑高度拖拽出来的效果  现在有点难看哈 ,,没事滴   我们继续完善它 



 

2.2  编辑特定高度


 

和编辑高度页面中的信息差不多,只是多了一个Height用来设置最大的高度,编辑高度中Opacity是最大高度,但是在这里Height才是最大高度但是Opacity必需有数值,举个例子Opacity设置为100  Height设置 80 最高的高度就是80   .Opacity设置为20  Height设置 100最高的高度还是20.   

 

 


 

2.3 设置平滑

 

用上面拉出来的地形 如果 近距离看 会发现 有些山峰 的边角会有些粗糙, 这时我们就可以使用 设置平滑来 山峰的边角平滑过渡


 

2.4  纹理贴图

 

这个东东呢 ,就是给地图加上图片 ,从而实现 好看的地图 而非像上面光光的  图片资源方面我们可以导入系统标准的资源库,里面有很多好看的地形资源,当然也可以自己添加喜欢的图片做地形资源。

 

导入系统 图片资源  选择  菜单栏中的assets -> import package -> terrain assets   点击导入 ,这里只是导入 地形系统的资源  在此次你也可以导入其他资源   如下图



 




 

unity地形烘焙地图 unity做地形_unity地形烘焙地图_07



 

点击Edit Textures  出现一个下拉列表

添加一个贴图 

编辑贴图

删除贴图

 

点击 addTextures 添加一个贴图 

 

如图 中的 箭头 标记  选择一个 你喜欢的地形图片  给地形 

 



unity地形烘焙地图 unity做地形_ci_08




Add Terrain Texture (添加贴图)

splat :选择一个贴图,上面导入了系统自带的地形资源,在这里随便添加两个贴图用于区分资源。也可以添加自己喜欢的图片,拖放在工程中就可以在这里看到图片资源。

 

Tile size x: 设置贴图X轴宽度

Tile size x:设置贴图Y轴宽度

Tile offset x:设置贴图X轴偏移量

 

 

Tile offset y:设置贴图Y轴偏移量


 

有兴趣的童鞋修改一下参数方可看到效果,这里暂时使用默认数值。。



 

现在回头看看 是不是好看多了 , 精彩还在后面的 ,我们继续 ....



 

2.5   画树模型 


 

既然 是地形 当然是有树啦  


 

Hierarchy 标签栏中,点击Create - > Tree 可以创建一个树的模型,设置自己的树木模型,这里我们先导入系统自带的树木模型,以后在讨论自定义模型的制作。


 

因为新建的工程中是没有树木和草地的贴图元素,可以在Unity3D 的标准资源库中导入,导入的方法和纹理贴图介绍的一样。打开Unity3D 在Project标签栏中 鼠标右键 Import package - > Tree Creator 将标准树木资源模型导入工程。


 

点击 Add Terrain Texture 添加一个 树模型  过程和 添加纹理贴图 类似 


 

如下图  


 

unity地形烘焙地图 unity做地形_ci_09



 

在上图中 花树模型的 属性 


 

Brush Size : 画笔绘制一次树木添加数量,数值越大越多,越小则越少,取值范围0到100。

Tree Density:树之间的百分比,在一片树中间在放入量一片树就得修改这个数值了,取值范围0到100。

Color Variation:树之间颜色差的范围,取值范围0到1。

TreeHeight:树的高度,它是与场景模型有一定比例,越大树越高,取值范围0到200。

Variation:树与树之间的高度比例,取值范围0到30。

Tree Width:树的宽度,它是与场景模型有一定比例,越大树越宽,取值范围0到200。

Variation: 树与树之间的宽度比例,取值范围0到30。


 





 

童鞋可以 调整这些参数 才地形上 花 并观看 效果 


 

我在 地形上 添加了 树 效果如下



 

unity地形烘焙地图 unity做地形_ci_10


 

game 游戏运行时的效果 如图


 

unity地形烘焙地图 unity做地形_ci_11


但我们在 游戏 的 game 窗口中 看 效果 会 发现  地形中 灰暗暗的一片  这是为什么呢 , 这是因为 光线不够 ,   这些unity 都为我们想好了 ,记得我们 前面有一章讲了 game object 吗 ?  现在我们来添加一个 平行光 (如何添加平行光 不知道的童鞋去看 Unity3D游戏开发 创建简单的游戏世界(三)  添加游戏组件 ),给 地形加点 亮度

 

各位童鞋注意哦,平行光的位置对游戏中的亮度是没有关系的, 角度才对亮度有关系, 所以我们添加了 平行光 旋转旋转角度就可以搞定了   


 

如下图 是不是好看多了  


 

unity地形烘焙地图 unity做地形_ci_12


 

画草模型:


起始它不仅能草,还能画一些自定义模型,可以处理一些零碎的小东西丰富游戏场景 它或 画树模型有些类似  这里就不再多啰嗦了 

 

主要设置一些3D游戏地形的一些参数



一下面列出一些主要参数的介绍,盆友们可以自己拖动鼠标修改一下其中的具体数值就可以在游戏视图中清晰的看到效果。


Pixel Error:控制地形密度容差,数值越大越圆滑,越小地形角度越明显。

Base Map Dist:控制地形贴图的距离.

Case shadows: 是否显示地形阴影

Draw:是否绘制绘制场景模型,比如树,草等等。

Wind Settings 地形中风的设置

Speed:风速 

Size:风的范围



 

学习了这一章 童鞋们赶快 试试 制作自己的喜欢的游戏地形吧 ,   哈哈 ,, 这章暂时就到这了 ,  有什么不明白的地方或遗漏的地方  欢迎积极留言 , 大家共同学习 共同进步 咔咔