Unity3D游戏开发 地形系统(四)

http://mahaile.blog.51cto.com/2891586/771167

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

 

首先创建一个新的场景 

 

点击菜单栏中的 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设置为100  Height设置 80 最高的高度就是80   .Opacity设置为20  Height设置 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:风的范围

 

 

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

时间: 2024-12-28 16:20:54

Unity3D游戏开发 地形系统(四)的相关文章

零基础unity3d游戏开发系列目录

零基础Unity3D游戏开发系列 第一章:游戏开发与游戏引擎(一) 零基础Unity3D游戏开发系列 第一章:游戏开发与游戏引擎(二) 零基础Unity3D游戏开发系列 第二章:Unity3D概览(一)界面... 零基础Unity3D游戏开发系列 第二章:Unity3D概览(一)创建与打开项目I 零基础unity3d游戏开发系列 第二章:unity3d概览(一)创建与打开项目II 零基础Unity3D游戏开发系列 第二章:Unity3D概览(一)创建与打开项目III 零基础Unity3D游戏开发

Unity3D游戏开发从零单排(四) - 制作一个iOS游戏

提要 此篇是一个国外教程的翻译,虽然有点老,但是适合新手入门.自己去写代码,debug,布置场景,可以收获到很多.游戏邦上已经有前面两部分的译文,这里翻译的是游戏的最后一个部分. 欢迎回来 在第一篇中,我们学会了怎么在Unity中搭建游戏的场景,并且设置模型的物理属性. 在第二篇中,我们学会了怎么在unity中使用脚本,并且创建了大部分的游戏逻辑,包括投球和得分! 在这最后一节中,我们将会为用户创建一个菜单系统,并且和GameController进行交互,我们开始吧. 在设备上测试 到目前为止,

Unity3D游戏开发之基于Terrain Toolkit实现地形的制作

 今天继续由我为大家带来Unity3D游戏开发系列文章.今天我们来通过Terrain Toolkit来实现地形的制作.尽管Unity3D已经为我们提供了地形绘制工具,但是在实际的运用中我们发现,这个地形绘制工具并不能满足我们的要求,因为通过手动绘制这种方法来画地形的起伏缺少了自然的侵蚀感,人力雕琢的感觉过于强烈,毕竟通过人去感觉自然界地形的起伏变化是力不从心的,所以我们建议通过程序来生成地形,因此就有了我们今天的这篇文章.下面,请大家跟随我一起来学习这个插件的使用吧. 首先我们创建一个空的项

Unity3D游戏开发之虚拟现实项目开发流程

Unity3D游戏开发之虚拟现实项目开发流程 欢迎来到unity学习.unity培训.unity企业培训教育专区,这里有很多U3D资源.U3D培训视频.U3D教程.U3D常见问题.U3D项目源码,[狗刨学习网]unity极致学院,致力于打造业内unity3d培训.学习第一品牌. 一.系统设计与资料的收集与整理 1.              与项目投资单位沟通并进行系统设计: 2.              收集整理规划图.效果图.现场照片: 3.              拍摄比干文化及景区介

[Unity3D]Unity3D游戏开发之异步记载场景并实现进度条读取效果

大家好,我是秦元培.欢迎大家关注我的博客,我的博客地址是:blog.csdn.net/qinyuanpei.终于在各种无语的论文作业中解脱了,所以立即抓紧时间来这里更新博客.博主本来计划在Unity3D游戏开发之从<魂斗罗>游戏说起(上)--目标追踪这篇文章后再写一篇<Unity3D游戏开发之从<魂斗罗>游戏说起(下)>,只是眼下博主的项目进度有些缓慢,所以想等项目稳定下来以后再和大家分享. 作为大家等待博主更新博客的回报,我们今天来说一说Unity3D中的游戏场景异步

Unity3D游戏开发之当游戏开发遇上Excel

各位朋友,大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是http://blog.csdn.net/qinyuanpei. 今天我们的话题是Excel,作为常用的办公软件的Excel相信大家都不陌生啦.可是如果我们认为Excel只是办公软件的话,那么这就不只是天真而是Out了.事实上Excel和游戏开发有着密切的联系,不知道大家还记不记得那款利用Excel开发出来的三国杀,这可能是Excel第一次以游戏开发的身份出现在大家面前吧.我们知道在游戏开发领域有一种工作叫做策划,就像在软件开发领

[Unity3D]Unity3D游戏开发之跑酷游戏项目解说

大家好,我是秦元培.我參加了CSDN2014博客之星的评选,欢迎大家为我投票,同一时候希望在新的一年里大家能继续支持我的博客. 大家晚上好.我是秦元培,欢迎大家关注我的博客,我的博客地址是blog.csdn.net/qinyuanpei.终于到了更新博客的时间.从昨天下午開始,博主開始设计一个跑酷的游戏,到晚上睡觉前这个游戏已经基本完毕. 博主今天早上七点钟就起来了,到早上十点钟终于把整个游戏写完了. 所以,今天的博客的主题就是<Unity3D游戏开发之跑酷游戏项目解说>. 从博主自身来考虑这

Unity3D游戏开发之伤害数值显示

众所周知,在RPG游戏策划中最为重要的一个环节是数值策划.数值策划是一个关于游戏平衡方面的概念,它是一种非常深奥的概念.游戏从某种意义上 是多种选择的组合,因此如果一个游戏失去平衡,那么就会减少选择而影响游戏的乐趣.数值策划人员通常需要按照一定的规则和方法将整个游戏系统的相关数值调整到一个合适的范围,以确保玩家可以有更多地选择以增强游戏的可玩性.数值策划是近年来国内游戏行业从国外游戏业引申过来的一个概念,我们在学习游戏设计的过程中,除了专注于技术上的实现以外,还应该对游戏设计中的相关理论有所了解

Unity3D游戏开发之跑酷游戏项目详解

更多精彩请到http://www.gopedu.com/ 今天的博客的主题就是<Unity3D游戏开发之跑酷游戏项目讲解>. 从我们自身来考虑这件事情,当你选择做自己热爱的事情的时候,你的内心一定是充满激情和勇气的,你愿意看到自己的努力,你愿意看到自己的付出,我们成长是为了促进自我对认知的不断完善,所以我们应该以一种虔诚.谦恭的态度来对待我们的生命,我们或许无法选择出身,但我们可以选择向自己喜欢的生活去努力.或许我和这些人真的不是一个世界的人吧,很多事情在今天都给出了结局,对于这种人我已经没有