Unity3D游戏开发 地形系统(四)
发表于2016-09-10
首先创建一个新的场景
点击菜单栏中的 Terrain-> create Terrain 菜单
完成后如下图
创建地形系统的时候unity会按默认的宽高图像分辨率,纹理分辨率等创建一个地形不过不怕这些我们都可以修改滴
如果需要在game窗口(即是游戏运行窗口)中看效果 ,需要调整下摄像机的位置和角度
操作方式 选中 Hierarchy中的main camera摄像机然后使用场景编辑器上面那4 个功能(拖动,移动,旋转,缩放)进行调节即可调节过程中就可以再game窗口中看到效果啦,各位童鞋多操作几次就可以熟练操作了
点击 Terrain ->resolution 菜单可以设置地形的各个参数
如下图
如上图所示从上到下分别代表的含义
Terrain Width: 地形的宽度
Terrain Height: 地形的高度
Terrain Length:地形的长度
HeightMap Resolution:地形高度图的分辨率.
Detail Resolution:细节分辨率,控制草和细节网格地图的分辨率。数值越高标示效果越好,想对也越消耗机器性能,可能会卡。根据情况适当的调节。
Control Texture Resolution:控制不同纹理的分辨率。
Base Texture Resolution:控制相对纹理分辨率,这里指一定范围内的。
设置完毕点击 set Resolution按钮,有兴趣的朋友可以动态的修改一下参数,看看你的地形发生了什么样的改变?
修改完后我们来给地形添加点元素吧
选中Hierarchy中的刚刚创建的terrain地形右边出现了地形的编辑窗口
如图
上图中的红框框讲解从上到下
1: position 是地形的 位置坐标
rotation 的旋转坐标
scale缩放比例
这个位置任何游戏组件都有这3个属性
2: 这7个属性从左往右分别是编辑高度、编辑特定高度、设置平滑、纹理贴图、画树模型、画草模型、其他设置.善用着七个工具可以编辑一个非常不错的游戏地形,稍后我会介绍这七个按钮的具体操作流程。
2.1 选中编辑高度下面出现barusher和settings属性栏
Brushes:地形绘制画笔,这里有很多种画笔的图案可供我们选择。
Brush Size :画笔宽度取值范围
Opacity :画笔高度取值范围
如图
各位童鞋可以修改参数在地图系统上绘制高度感受这些参数的意义
上图是我使用编辑高度拖拽出来的效果 现在有点难看哈 ,,没事滴 我们继续完善它
2.2 编辑特定高度
和编辑高度页面中的信息差不多,只是多了一个Height用来设置最大的高度,编辑高度中Opacity是最大高度,但是在这里Height才是最大高度但是Opacity必需有数值,举个例子Opacity设置为100Height设置80最高的高度就是80 .Opacity设置为20Height设100最高的高度还是20.
2.3 设置平滑
用上面拉出来的地形如果近距离看会发现有些山峰的边角会有些粗糙, 这时我们就可以使用设置平滑来山峰的边角平滑过渡
2.4 纹理贴图
这个东东呢 ,就是给地图加上图片 ,从而实现看的地图而非像上面光光的图片资源方面我们可以导入系统标准的资源库,里面有很多好看的地形资源,当然也可以自己添加喜欢的图片做地形资源。
导入系统图片资源选择菜单栏中的assets -> import package -> terrain assets 点击导入 ,这里只是导入地形系统的资源在此次你也可以导入其他资源如下图
点击Edit Textures 出现一个下拉列表
add Textures 添加一个贴图
Edit Textures 编辑贴图
Remove Textures删除贴图
点击 addTextures 添加一个贴图
如图中的箭头标记选择一个你喜欢的地形图片给地形
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 添加一个树模型过程和添加纹理贴图类似
如下图
在上图中花树模型的属性
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。
童鞋可以调整这些参数才地形上花并观看效果
我在地形上添加了树效果如下
game游戏运行时的效果如图
但我们在游戏的game窗口中看效果会发现地形中灰暗暗的一片这是为什么呢,这是因为光线不够,这些unity都为我们想好了,记得我们前面有一章讲了game object吗?现在我们来添加一个平行光 (如何添加平行光不知道的童鞋去看 Unity3D游戏开发创建简单的游戏世界(三)添加游戏组件 ),给地形加点亮度
各位童鞋注意哦,平行光的位置对游戏中的亮度是没有关系的,角度才对亮度有关系,所以我们添加了平行光旋转旋转角度就可以搞定了
如下图 是不是好看多了
画草模型:
起始它不仅能草,还能画一些自定义模型,可以处理一些零碎的小东西丰富游戏场景它或画树模型有些类似这里就不再多啰嗦了
主要设置一些3D游戏地形的一些参数
一下面列出一些主要参数的介绍,盆友们可以自己拖动鼠标修改一下其中的具体数值就可以在游戏视图中清晰的看到效果。
Pixel Error:控制地形密度容差,数值越大越圆滑,越小地形角度越明显。
Base Map Dist:控制地形贴图的距离.
Case shadows: 是否显示地形阴影
Draw:是否绘制绘制场景模型,比如树,草等等。
Wind Settings 地形中风的设置
Speed:风速
Size:风的范围