提要

在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. Spring是什么、spring容器、Spring三大核心思想DI(依赖注入)、IOC(控制反转)、AOP(面向切面编程)

    1.Spring (1)Spring是什么? 是一个轻量级的.用来简化企业级应用开发的开发框架. 注: a.简化开发: Spring对常用的api做了简化,比如,使用Spring jdbc来访问数据库 ...

  2. CSS 画一个心

    效果图: 实现原理: 可以把这个心分为两部分,两个长方形,分别设置 border-radius,transform: rotate() . 设置属性之后 再次添加一个,设置相反的 rotate 设置其 ...

  3. webstorm忽略node_modules目录

    我在使用了cnpm后node_modules之前的层级目录变成了同一级目录,所以目录很多,造成webstorm读取时卡死. 网上大家列了各种方法,在这里我归纳一下! 先给大家看看一些相关链接. 方法1 ...

  4. 使用Spring操作Redis的key-value数据

    前言 最近工作一直忙的不可开交,小Alan已经很久没有和大家分享知识了,在深圳待了两年多,依然感觉自己还是个小菜鸟,工作中还是会遇到很多自己在短期内无法搞定的事情,每当这个时候总是会感觉到很沮丧,就会 ...

  5. zabbix系列之一——简要介绍

    参考来源:(官网) https://www.zabbix.com/documentation/3.4/manual/introduction/about 1what’s zabbix? index d ...

  6. eclipse中如何添加tomcat插件

    本篇简短的介绍了如何安装tomcat插件,因为不eclipse中不安装插件就没有tomcat图标,也就无法正常关闭服务器而只能terminate.废话不多说,直接进入主题: 1.首先下载一个tomca ...

  7. ASP.NET 通过配置hiddenSegment禁止目录下资源通过Url形式访问

    根据默认的ASP.NET配置,App_Data下的资源是禁止通过Url形式直接访问的,在实际开发中,可能也会有这样的需求,比如某些是系统资源目录,该目录下的资源也需要像App_Data目录一样禁止访问 ...

  8. 转:c# WinForm开发 DataGridView控件的各种操作总结(单元格操作,属性设置)

    一.单元格内容的操作 *****// 取得当前单元格内容 Console.WriteLine(DataGridView1.CurrentCell.Value); // 取得当前单元格的列 Index  ...

  9. 解决Failed to load the JNI shared library xxx/xxx/jvm.dll 错误

    原因:jdk发生变化(新装了32位jdk),eclipse在启动时使用了 系统环境变量中的jdk路径(32位). 解决:只要把旧的64位的jre路径指定给eclipse启动文件即可. 在eclipse ...

  10. Asp.net Core 2.0+EntityFrameWorkCore 2.0添加数据迁移

    Asp.net Core 由于依赖注入的广泛使用,配置数据迁移,与Asp.net大不相同,本篇介绍一下Asp.net Core添加数据迁移的过程 添加Nuget包 Install-Package Mi ...