第一人称漫游场景

地形漫游系统:

(自己绘制的GIF文件超过20MB放不上博客园。截取了几张图片)按键盘上的“上下左右”可以控制第一人称的漫游视角

资源包和项目源文件:传送门

自己做的项目可执行文件:传送门

感谢生命不息bug不止博客:传送门

学习Unity中Terrain地形属性

  

第一个按钮是让部分地方隆起或凹陷,按住shift刷就会凹陷,不按就是隆起

  

第二个按钮用来改变地形高度的

  Brush Size(笔刷大小)

  Opacity(透明度)

  Height(高度)

  

第三个按钮可以柔化地形的高度差

  

第四个按钮为地形放上纹理

  

第五个按钮添加树木

    

第六个按钮添加草地

实现过程

一、绘制地行

  点击最右边在按钮,设置地形在分辨率

  设置Terrain Width(地形宽度)设置为200,Terrain Length(地形长度)设置为200,Terrain Height(地形高度为60)

  在Terrain在Inspector试图中,将Settings下在Brush Size(笔刷大小)设置为100,Highth(高度)设置为5,同时单击Flatten,此时整个地形会向上抬高5个单位

  抬高地形目的:使得在地形上可以往下刷深度

  降低地形高度,用来绘制湖泊。在Terrain在Inspector试图中,单击Terrain下在,设置Brush Size设置笔刷大小,按住Shift按键,可以降低高度

  绘制地形在山脉。在Terrain在Inspector视图中,单击Terrain下在,设置Brush Size设置笔刷大小,单击左键可以拉高地形

  导入环境资源包Environment资源

  绘制地形在首层纹理,在Terrain在Inspector试图中,单击Terrain下在按钮,单击Edit Textures按钮,选择Add Texture,在弹出在Add Terrain Texture对话框中安吉Albedo下在Texture2D下在Select按钮,在弹出在Select Texture2D对话框中选择GRockyAlbedo,最后单击Add Terrain Texture对话框下在Add按钮

  绘制其他纹理,按照上一步骤,继续添加CliffAlbedoSpecular在纹理,然后在Textures下选择你该纹理

  添加树木

  点击按钮,点击下面的Edit Trees按钮,选择AddTree选项,在弹出的AddTree对话框中,单击 Tree Prefab,添加Palm_Desktop的树木

Brush Size 画笔大小 一次性添加多少颗树,要批量添加时调大
  Tree Density 树的密度 控制树的密度
  Tree Height 树的高度 后面有个Random的选项,是否随机的意思,选中后可以选一个范围高度,然后添加的树的高度在这个范围中随机高度 (现实中树怎么可能都一样高)
  Lock Width to Height 是否锁定树的宽度和高度(和图片一样,拉伸就不好看了)
  Random Tree Rotation 是否随机树的方向(树有的会长歪,随机歪向一个方向)

添加树木属性:

点击按钮,肯上一步一样,选择要添加草皮在属性

在Add Grass Texture中把Min Width设置为0.3,Max Width设置为0.5,Min Height设置为0.3,Max Height设置为0.5,

(考虑到性能消耗问题,unity默认设置,调试模式下草地在超出一定高度后就无法看到,但是最终作为游戏运行时是可以看到的)
 
 
 
 接下来添加水的效果,创造湖泊。在Water(Basic)文件下→ Prefabs其中有两个水效果的预设体,将WaterBasicDaytime拖到地形的大坑中,名字改为Water
 
通过缩放按钮 拉伸水的大小,填满整个大坑,然后通过移动按钮把水向上移动到合适的高度
 
 
  
二、导入外部资源
 
Assets → import package → custom package,然后找书带的学习素材,选chapter06中的house.unitypackage,单击 打开 按钮,弹出导入的对话框,单击 import 按钮,完成导入
 
 
 
  导入天空资源盒包。依次选择菜单栏在Assets->Import Package->Custom Package命令,选择Skyboxes.unitypackage
 
  添加天空盒。依次选择菜单栏中在Window->Lighting命令,在Lighting视图在Scene选项卡,单击Skybox右侧按钮,在弹出在Select Material对话框中选择Sunny1 Skybox
 
 
 
三、添加第一人称角色和控制添加角色和控制
 
  导入角色资源控制器资源包。依次选择菜单栏中的Assset->Import Package->Characters命令,在弹出Importing package对话框中右下角的Import按钮,导入资源到项目
 
  在Project视图中,依次打开文件夹Assets->Standard Assets->Characters,可以看到Characters文件夹下有FirstPersonCharacter第一人称控制器,如下图
 
  将FirstPersonCharacter->Perfabs文件夹中的RigidBodyFPSControlle预设体拖动到Scene视图中,便完成了第一人称控制器
 
 
 
 
 
 

Unity3D_(地形)创建基本场景的更多相关文章

  1. 转:修改ETM,用Ogre实现《天龙八部》地形与部分场景详解

    本文主要讲的是<天龙八部>游戏的地形和一部分场景的具体实现,使用C++, Ogre1.6,我摸索了段时间,可能方法用的并不是最好的,但好歹实现了.文章可能讲得有点罗嗦,很多简单的东西都讲了 ...

  2. css3创建3D场景

    浏览器本身是一个2维平面,对于3D的情况,实际上是增加了一个维度(深度),所以我们需要创建一个3D场景.这时浏览器不仅仅是一个平面了,更像是一个窗口,我们透过这个窗口去观察里面的三维世界.所谓的创建3 ...

  3. cocos3.2中如何创建一个场景

    1.可以将一些比较通用的东西放到Common.h中,这是一个.h文件,必须手动添加,且保证在classes目录里 #ifndef __COMMON_H__ #define __COMMON_H__ # ...

  4. NGUI使用教程(2) 使用NGUI创建2D场景而且加入标签和button

    1.创建2D场景 要使用NGUI创建2D场景,首先咱们必须新建一个项目,而且导入NGUI作为这个项目的插件,相信假设看过上一篇教程都知道怎么导入NGUI了,这里就不赘述,假设有疑问的能够去看上一篇教程 ...

  5. [Bullet3]创建世界(场景)及常见函数

    创建世界(场景)及常见函数 官方文档:http://bulletphysics.org 开源代码:https://github.com/bulletphysics/bullet3/releases A ...

  6. Three.js入门篇(一)创建一个场景

    上一面讲述了向场景中添加物体对象.这一篇准备把每个功能点细细的讲述一遍,一方面是为了加深自己的理解.另一方面希望能够 帮助到有需要的人. 一.在学习WEBGL的时候,你应该先了解要创建一个WebGL程 ...

  7. quick-cocos2d-x游戏开发【2】——项目结构分析、创建新场景

    创建完一个新项目之后,我们能够简单的看一看这个项目的文件组成,有这么一个文件层次结构 几个proj.*目录就不用说了,是相应的平台的解决方式,res专门存放我们的游戏资源.scripts存放我们的lu ...

  8. Unity3D_异步加载场景(进度条)

    创建两个场景:现在的场景“NowScene”,要加载的场景“LoadScene”: “NowScene”如图所示,“LoadScene”任意: 创建脚本“AsyncLoadScene”,复制如下代码, ...

  9. Cocos2d-x 3.0 创建一个场景,并设置现场的时候,项目开始执行上主动

    头 #ifndef __TEST_H__ #define __TEST_H__ #include "cocos2d.h" USING_NS_CC; class Test : pub ...

随机推荐

  1. api返回数据

    控制器里调用方法 <?php namespace app\admin\controller; use app\admin\controller\Base; class Index extends ...

  2. thinkPHP验证码报错: Call to undefined function captcha_src()

    问题出现的原因可能有: 1. captcha扩展缺失: 2. captcha扩展与当前thinkPHP版本不兼容. thinkPHP6.0以下版本只能使用 captcha2.0以下版本,不支持2.0版 ...

  3. 什么是 Serverless 应用引擎?优势有哪些?

    Serverless 应用引擎(Serverless App Engine,简称 SAE)是面向应用的 Serverless PaaS 平台,能够帮助 PaaS 层用户免运维 IaaS,按需使用,按量 ...

  4. MySQL数据库基础-JAVA

    数据库 MySQL初步 MySQL基础认知 (Oracle真的是走哪祸害到哪23333) Java多用MySQL和Oracle SQLServer也收费,但是还行,比Oracle便宜,一个差不多3w多 ...

  5. Axure(二)

    回顾1.Axure    动态面板        图片转换        画面滚动2.使用元件  -->  page box  盒子 width                 height   ...

  6. json串到java对象

    json串到java对象 前端传入参数json字符串,格式如下: {"语文":"88","数学":"78"," ...

  7. Boston Key Party 2015 Heath Street 题解(Writeup)

    Heath Street是Boston Key Party 2015的一道数字取证题目,我们得到了一个叫做“secretArchive.6303dd5dbddb15ca9c4307d0291f77f4 ...

  8. Mac OSX编译安装php7.1.8

    laravel中用到ldap认证包,要求php7.0以上版本,而且安装Mews\Captcha包的时候 验证码无法显示 报错如下: Call to undefined function Interve ...

  9. string::empty

    bool empty() const noexcept;注:判断string对象是否为空,为空返回true #include <iostream>#include <string&g ...

  10. CH5102/SPOJ?? Mobile Service/P4046 [JSOI2010]快递服务[线性dp+卡常]

    http://contest-hunter.org:83/contest/0x50%E3%80%8C%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92%E3%80%8D%E4%B ...