提要

在Unity工作流程内,地形是一个必不可少的重要元素。不论是游戏或虚拟现实都会使用到各种类型的地形效果,在这个教学中我们须要了解到地形的制作基本概念与,当中对于Unity的地形操作部分须要大量的操作练习.熟悉这些功能操作之后,相信对于游戏地形的制作与运用将会更得心应手。

先看终于效果:

环境:windows7 64bit Unity3d4.2.1

所需资源:terrain.raw

创建project

File  ->  New project

选择project存放的位置,同一时候导入 Skyboxed.unityPackage(天空盒), Terrain Assets.unityPackag(地形)和Tree Creator.unityPackage(树木).

再导入一个包,这个须要导入一个官方的树木,草地的包。

创建地形

在Hierarchy中,creatte ->Terrain.场景中就自己主动产生一个平面。这是地形默认使用的基本原型。地形的各种属性在右边的inspector里面

地形的制作通常使用的是heightmap,在unity3d是就是.raw文件。Raw文件中面记录着灰阶的位阶图,藉由灰阶的落差来产生地形的高低。

当然也能够用自带的地形工具来创建。

还是在inspector中。点击Import Raw...选择下载的附件terrain.raw,不修改不论什么设定。直接按下 Import将地形高度贴图导入。

经过贴图的导入后,原本的平面转换成高低起伏的地形,接下来我们就能够開始绘制地形上的纹理效果。

地形纹理

如今须要给山绘制一些纹理,就是第四个工具。首先是导入纹理。导入四种,首先是主要的地面,一种是草地,然后是山顶的石头纹理,还有就是山脚的纹理。

最好导入多种纹理。设置好笔刷,先刷个大概,然后刷些细节,绘制出来的效果就像:

山脚下

山顶

种树种草

在Terrain(Script)的第五个工具

由于之前导入了Terrain Assets的包,所以这里能够直接导入一些树。參数设置在Setting里面。

然后就是选择各种树漫山遍野地刷。

花草的操作相似,第六个工具,导入一些模型之后就能够開始刷了!

刷子的几个參数,Brash Size,Opacity。Target Strenth都能够自己调节下看看,非常好理解。

刷的同一时候按住shift就是删除。

灯光、天空盒和雾还有风

最后要加入的部分尽管不属于地形的创建,可是添加了整合场景的真实程度。

灯光的话直接在Hierarchy中create一个directional light就好了。调整下强度。

默认情况下摄像机的背景是深蓝色的,以下是加入天空盒到摄像机上。选择main camera。在右边的inspector中设置例如以下:

这时候就有天空了。

这里用最简单的全局雾的效果。

Edit->Rendering Setting设置例如以下:

风的设置直接在地形的属性中设置就能够了,加上风之后植物就能够随风摆动。

到这里,一个炫酷的地形就完毕了,编译执行下,就能够看到终于的场景效果。

參考

究极 Unity 地形制作 - 极速创建华丽的游戏地形 - http://www.narkii.com/club/thread-260061-1.html

《Unity3D game essential》

Unity3D游戏开发从零单排(三) - 极速创建狂拽酷炫的游戏地形的更多相关文章

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

    提要 此篇是一个国外教程的翻译,尽管有点老,可是适合新手入门. 自己去写代码.debug,布置场景,能够收获到非常多.游戏邦上已经有前面两部分的译文,这里翻译的是游戏的最后一个部分. 欢迎回来 在第一 ...

  2. Unity3D游戏开发从零单排(五) - 导入CS模型到Unity3D

    游戏动画基础 Animation组件 Animation组件是对于老的动画系统来说的. 老的动画形同相应的动画就是clip,每一个运动都是一段单独的动画,使用Play()或CrossFade(),直接 ...

  3. Unity3D游戏开发从零单排(六) - 人物运动及攻击连击

    提要 今天要实现的是一个简单人物控制器. 包括用w,a,s,d来控制人物上下左右跑动,鼠标左击发出连招,都是基于老的lagacy的动画.尽管unity3d自带有charactorcontroller, ...

  4. cocos2d-x 游戏开发之有限状态机(FSM) (三)

    cocos2d-x 游戏开发之有限状态机(FSM) (三) 有限状态机简称FSM,现在我们创建一个专门的FSM类,负责管理对象(Monkey)的状态.然后Monkey类就实现了行为与状态分离.Monk ...

  5. HTML5物理游戏开发 - 越野山地自行车(三)粉碎自行车

    自上一章公布到如今已时隔四月,实在对不住大家.让大家久等了~话说不是我不关注我的博客,而是事情一多起来写博客的时间就少了. 待到今日有空了,回头看了看自己曾经写的文章,猛得发现已经四个月不曾写文章了. ...

  6. Unity 2D游戏开发高速入门第1章创建一个简单的2D游戏

    Unity 2D游戏开发高速入门第1章创建一个简单的2D游戏 即使是如今,非常多初学游戏开发的同学.在谈到Unity的时候.依旧会觉得Unity仅仅能用于制作3D游戏的. 实际上.Unity在2013 ...

  7. Web开发从零单排之一:在新浪云平台SAE上开发一个html5电子喜帖

    需求描述: 本人大婚将至,女朋友说“现在都流行在微信上发电子请帖了,你不是技(cheng)术(xu)宅(yuan)嘛,不会连这个都搞不定吧” 本人嘴上说这等小事何足挂齿,但心里还是七上八下的,虽然自认 ...

  8. 【Unity游戏开发】跟着马三一起魔改LitJson

    一.引子 在游戏开发中,我们少不了和数据打交道,数据的存储格式可谓是百花齐放,xml.json.csv.bin等等应有尽有.在这其中Json以其小巧轻便.可读性强.兼容性好等优点受到广大程序员的喜爱. ...

  9. Web开发从零单排之二:在自制电子请帖中添加留言板功能,SAE+PHP+MySql

    在上一篇博客中介绍怎样在SAE平台搭建一个html5的电子请帖网站,收到很多反馈,也有很多人送上婚礼的祝福,十分感谢! web开发从零学起,记录自己学习过程,各种前端大神们可以绕道不要围观啦 大婚将至 ...

随机推荐

  1. js返回一组日期中最近连续的天数

    用js获取一组日期(并把当天算入)中连续的天数 刚开始可能想到单纯的比较日期大小判断连续, 而又有大小月,平闰年这些因素,还是时间戳来的安全; 首先得有一组日期,比如: var arr = [ '20 ...

  2. bootstrapValidator验证中Maximum call stack size exceeded

    Tip1:如果表单不是通过Bootstrap构建(即元素包含表单项且关联的label没有form-group类),可能会看到错误Uncaught RangeError: Maximum call st ...

  3. 矩阵分解---QR正交分解,LU分解

    相关概念: 正交矩阵:若一个方阵其行与列皆为正交的单位向量,则该矩阵为正交矩阵,且该矩阵的转置和其逆相等.两个向量正交的意思是两个向量的内积为 0 正定矩阵:如果对于所有的非零实系数向量x ,都有 x ...

  4. Vue 框架-12-Vue 项目的详细开发流程

    Vue 框架-12-Vue 项目的详细开发流程 首先,如果你还不了解 Vue 脚手架怎么搭建? 默认的环境中有哪些文件? 文件大概是什么作用? 那么,您要先查看之前的文章才有助于你理解本篇文章: Vu ...

  5. 使用Axure设计中,大型的后台系统原型总结

    使用Axure设计中,大型的后台系统原型总结 2018年4月16日luodonggan 在产品原型设计中,经常会涉及到后台系统原型的设计,如何设计出更规范标准的后台系统原型,是很多产品同行们都会遇到的 ...

  6. mongodb存储引擎

    存储引擎(Storage Engine)是MongoDB的核心组件,负责管理数据如何存储在硬盘(Disk)和内存(Memory)上.从MongoDB 3.2 版本开始,MongoDB 支持多数据存储引 ...

  7. "docker build" requires exactly 1 argument(s).

    Docker 是怎么样的东西,这里就不说了,这里说说dockerfile创建容器时遇到的问题. 首先我想达到的目的很简单,就是用dockerfile去创建容器,步骤如下: 创建并编辑dockerfil ...

  8. wordpress利用rsync同步备份

    我搭建的wordpress服务器现在使用的系统是opensuse, 服务器上面已做脚本和计划任务将wordpress使用的数据库与web目录每天压缩备份放到 /data/backup目录下 opera ...

  9. Hadoop HBase概念学习系列之HBase里的高表设计概念(表设计)(二十八)

    在下面这篇博文里,我给各位博客们,分享了创建HBase表,但这远不止打好基础. HBase编程 API入门系列之create(管理端而言)(8) 在关系型数据库里,表的高表和宽表是不存在的.在如HBa ...

  10. [EffectiveC++]item26:尽可能延后变量定义式的出现时间