unity怎么做一个漫游指引unity3d特效用什么做

Unity3D学习笔记(二)创建地形和漫游 - CSDN博客
Unity3D学习笔记(二)创建地形和漫游
上一章粗略介绍了一下Unity游戏引擎的概念定义和界面功能,这次就来实践一下。我们的目标是没有蛀牙(误),目标是创建一个地形,上面有山脉和盆地,然后再放置一个人物,以第一人称的视角来漫游、观察我们所创建的世界。
在开始设计游戏之前我们需要先重新建立一个我们自己的Unity工程。点击主菜单的"文件→新建工程(File-&New Project…)",就可以看到新建工程向导对话框了。
我把工程建建立在E:FrederickUnityFundStudy1,注意目前Unity对中文的支持不是很好,因此在Unity中尽量不要使用中文,防止出现各种各样莫名其妙的异常。点击确认创建,Unity会重启并自动打开我们创建的工程。这时在设计视图面板就可以看到一个“什么都没有”的宇宙。而在层次面板中则可以看到一个“Main
Camera”,顾名思义,就是主摄像机,暂时可以先不理它。
作为这个世界的神,我们需要在这个混沌的虚空里创建一个大陆,以承载世间万物。点击主菜单→地形(Terrain)→创建地形(Create Terrain)。然后在设计视图里就出现了一个不是怎么好看的白色平面,与此同时在层次面板也会出现Terrain,它表示我们刚刚创建的地形。在工程面板中则会有一个“New
Terrain”,代表地形素材。接着可以选择工具栏中的拖动工具,在设计视图中进行以下操作,调整到一个自己看着舒服的视角:
按住鼠标右键并拖动:旋转视角;
按住鼠标左键并拖动:平移视角;
滚动鼠标滚轮:拉近/拉远视角;
这地面白茫茫一片看着一点生命力都没有,回想一下在其他游戏里,都是会有一些草原、沙漠、戈壁之类的吧。所以接下来给我们的大陆加上点“料”,贴上地形纹理。在此之前需要先导入一些贴图素材,还记得创建工程时候的那些素材包吗?现在我们就导入一个Unity自带的地形素材包。点击主菜单(或右键点工程视图)“Assets→Import
Package→Terrain Assets”,会弹出一个需要导入素材的筛选列表,这里直接点右下角的导入”Import”导入所有素材。导入的素材则会出现在工程视图面板中的“Standard Assets”文件夹中。
准备好素材后,选中我们的大陆,然后在监视面板中找到地形工具栏,并点击第四个“绘制地形纹理”按钮。继续点击“Edit Textures…→Add Textures…”添加新的地形纹理。在弹出的对话框中找到那个选择纹理的小圆圈按钮,选择“Grass
Hill”。不要惊讶为啥地面变成一坨绿色了,那是因为镜头太远了看不清细节,调整一下视角即可。接着如法炮制,把“Grass&Rock”也添加进来,这样一来我们就有两种地形纹理了。有了地形纹理之后需要做的工作就是使用画刷工具将纹理“绘制”在地形上。选中第二张纹理,然后把鼠标移动到设计视图中,按住鼠标左键随意“涂抹”(用过Photoshop的画刷工具应该可以轻松领会),涂错了也不同担心,用另外一张纹理覆盖涂抹上去即可。
光有地形纹理还不够,这一马平川依然不能让人感觉心潮澎湃呀,所以还需要给这个地形做个“外科整容手术”,该凸的凸,该凹的凹,跌宕起伏才有韵味嘛:)上文使用的是第四个按钮“地形画刷”,现在要祭出“地形隆起/凹陷”这把手术刀了。点击第一个按钮切换,发现和之前的工具配置项类似,调整画刷形状、大小、透明度后,在设计视图再涂抹一下,地面瞬间就隆起啦!如果想取消隆起,可以按住Shift再涂抹,地面就会凹陷下去。顺便再说明一下第二个和第三个工具,前者是“直接设置地面高度”,后者是“平滑地面高度”,参数都是大同小异。在对前面那块地形稍作调整后,我整了些山脉上去:
唔……没有艺术细胞,将就着看吧,哈哈。至于山脉上面应该有的岩壁纹理,还有花草树木之类的留到下章再讲。是否已经迫不及待想要看看这个世界呢?如果是自己为游戏做编程,那还需要建立一个角色,然后让它接收用户输入再作出响应,比如走动、旋转视角等等,相当麻烦。Unity为我们准备了大量的范例和素材包,其中不但包括各种模型、图片,还有常用的脚本等等。例如接下来要使用的角色控制器,完全可以不写一行代码实现上述功能(事实上在3DBuzz的基础教程中,从头到尾都没有涉及脚本,所以程序新手完全不用担心。)
点击主菜单(或右键点工程视图)“Assets→Import Package→Character Controller”,导入角色控制器素材包。在工程面板视图中,在“Standard Assets→Character
Controllers”目录下,可以找到“3rd Person Controller”和“First Person Controller”。顾名思义,前者是第三人称视角控制器(类似战神、刺客信条视角),后者是第一人称视角控制器(类似反恐精英、使命召唤视角)。简单起见我只用到后者,将它直接拖入场景设计视图,随意摆放到一个位置,一个角色就创立完成啦!虽然其貌不扬,长得还有点邪恶XD,但它可以像我们常玩的FPS游戏一样,用WSAD控制移动,空格跳跃,鼠标控制镜头方向,真是太给力了。如果设计视图视角拉得太远,则会导致几乎看不到它,此时可以双击层次视图面板上的First
Person Controller来让设计视图的镜头对着它,这个操作适用于聚焦任何游戏对象。
完成创建角色控制器后,就可以点工具栏上的播放键测试运行游戏了。呃,天色好暗,环顾四周只能看到山峰的轮廓……这是因为游戏中还没有光,所以几乎什么都看不见。既然没有光,那就创建一个。先再次点击播放键退出游戏测试,然后点击主菜单“(新建游戏对象)GameObject→(创建其他游戏…)Create
Other→(线性光)Directional Light”,创建一个线性光对象。
神说:要有光。便有了光。
嘿嘿,瞬间整个世界都敞亮了。所谓线性光,可以理解为一个从无限远的地方向某个方向发射一束无限宽的光线,有点像太阳。由于是无限远的,所以不存在物体在线性光的背面,即使在设计视图中把线性光对象拖到地面以下,依旧能够照亮地面。同时当光线被山脉遮挡时,就会在地面上留下阴影。如果对光线的方向不满意的话,可以先选中线性光,然后点击工具栏中的旋转工具对其进行旋转。旋转时会出现一个球形,拖动任意一条线即会让物体沿着其中心轴旋转(该操作适用于任何游戏物体,具体动手尝试一下即可)。
终于可以在亮堂堂的世界里畅游啦,还是蛮有成就感的嘿。
最后别忘了把游戏场景保存一下,方便下次再次编辑。点击主菜单中的“File(文件)→Save Scene(保存场景)”,由于之前没有保存过场景,所以Unity会弹出一个保存框让用户选择保存位置。为了方便管理,我在Assets目录下新建了一个Scenes目录,然后保存为
ElwynnForest。当下次打开Unity时,Unity会自动打开最近一次编辑的项目和场景,此时保存场景就不需要再输入文件名了。
关于地形的创建和漫游的笔记就到这里,下一章我们给这片荒野加上一些花草树木,展现一下大自然的独特魅力:)
作者:黄旭杨&
本文已收录于以下专栏:
相关文章推荐
Unity3d中场景漫游的制作
两个代码都附在MainCamera上面,可以实现键盘加鼠标漫游
1、KeyMove.cs  键盘漫游
using UnityE
using System.Collect...
今天是继续昨天的讲的,在地形场景中可以添加局部风力,点击gameobject—create
other—wind zone,然后在右侧的属性中设置风力的大小等。
添加碰撞:
     如果你发...
using UnityE
using System.C
public class ScemeMove : MonoBehaviour {
private Vect...
本系列文章由Aimar_Johnny编写,欢迎转载,转载请注明出处,谢谢。
http://blog.csdn.net/lzhq1982/article/details/
到现在为止我们已经拥有了比较完备的Prefab,已经可以创建宏大的游戏场景,并以第一人称视角在场景中漫游了。这里给大家做个小的示范,建一个小场景大家在创建场景的时候需要自由发挥,做个尽量大的场景出来。...
上一章粗略介绍了一下Unity游戏引擎的概念定义和界面功能,这次就来实践一下。我们的目标是没有蛀牙(误),目标是创建一个地形,上面有山脉和盆地,然后再放置一个人物,以第一人称的视角来漫游、观察我们所创...
打开Unity主窗口,选择顶部菜单栏的“GameObject”-&“3D Object”-&“Plane”在游戏场景里面添加一个面板对象。然后再创建一个“Cube”(立方体)对象。这样场景就会如下图所...
我学习Unity3D一小段时间了,第一个制作目标就是实现一个自由漫游的摄像机。
使用WSAD键控制摄像机的上下左右移动,使用鼠标右键控制摄像机的旋转。
这个功能比较简单,代码也一目了然,不做过多解释了...
他的最新文章
讲师:宋宝华
讲师:何宇健
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)需求发布后1小时内收到服务商响应每个需求平均有10个服务商参与95%以上的需求得到了圆满解决所有需求不向雇主收取任何佣金双11电商狂欢 爆款服务超乎你想像
利用Unity3D实现场景漫游(简单的测试任务)
有相似问题想解决?专业顾问来帮助您
发布需求, 托管赏金
匹配服务商
选择服务商,签单
服务商工作
验收并付款
已投标服务商
综合评分:5颗星
速度:5.00
服务:5.00
态度:5.00
好评率:100%
共有1个服务商参与报价,查看更多服务商报价
参与报价,开始赚钱
提交你的报价和方案
中标后交付作品
获得任务赏金
根据浏览的需求为您推荐
交易成功的需求
游戏美术整包相关需求
关注猪八戒微信我学习Unity3D一小段时间了,第一个制作目标就是实现一个自由漫游的摄像机。
使用WSAD键控制摄像机的前后左右移动,使用鼠标右键控制摄像机的旋转。
这个功能比较简单,代码也一目了然,不做过多解释了,直接上代码。
这个脚本不只可以用在摄像机上,也可以用在一般的GameObject上。
//-----------------------------------------------------------------
//<span style="color: #,把本类作为一个组件,包含在 GameObject 中。
//<span style="color: #,左手坐标系。
//-----------------------------------------------------------------
using System.C
using System.Collections.G
using UnityE
//-----------------------------------------------------------------
public class FiCameraControl : MonoBehaviour
public float moveSpeed = <span style="color: #.0f;
public float rotateSpeed = <span style="color: #.2f;
public static Vector3 kUpDirection = new Vector3(<span style="color: #.0f, <span style="color: #.0f, <span style="color: #.0f);
//控制摄像机旋转的成员变量。
private float m_fLastMousePosX = <span style="color: #.0f;
private float m_fLastMousePosY = <span style="color: #.0f;
private bool m_bMouseRightKeyDown = false;
//-----------------------------------------------------------------
void Start()
//-----------------------------------------------------------------
void Update()
//判断旋转
if (Input.GetMouseButtonDown(<span style="color: #)) //鼠标右键刚刚按下了
if (m_bMouseRightKeyDown == false)
m_bMouseRightKeyDown = true;
Vector3 kMousePos = Input.mouseP
m_fLastMousePosX = kMousePos.x;
m_fLastMousePosY = kMousePos.y;
else if (Input.GetMouseButtonUp(<span style="color: #)) //鼠标右键刚刚抬起了
if (m_bMouseRightKeyDown == true)
m_bMouseRightKeyDown = false;
m_fLastMousePosX = <span style="color: #;
m_fLastMousePosY = <span style="color: #;
else if (Input.GetMouseButton(<span style="color: #)) //鼠标右键处于按下状态中
if (m_bMouseRightKeyDown)
Vector3 kMousePos = Input.mouseP
float fDeltaX = kMousePos.x - m_fLastMousePosX;
float fDeltaY = kMousePos.y - m_fLastMousePosY;
m_fLastMousePosX = kMousePos.x;
m_fLastMousePosY = kMousePos.y;
Vector3 kNewEuler = transform.eulerA
kNewEuler.x += (fDeltaY * rotateSpeed);
kNewEuler.y += -(fDeltaX * rotateSpeed);
transform.eulerAngles = kNewE
//判断位移
float fMoveDeltaX = <span style="color: #.0f;
float fMoveDeltaZ = <span style="color: #.0f;
float fDeltaTime = Time.deltaT
if (Input.GetKey(KeyCode.A))
fMoveDeltaX -= moveSpeed * fDeltaT
if (Input.GetKey(KeyCode.D))
fMoveDeltaX += moveSpeed * fDeltaT
if (Input.GetKey(KeyCode.W))
fMoveDeltaZ += moveSpeed * fDeltaT
if (Input.GetKey(KeyCode.S))
fMoveDeltaZ -= moveSpeed * fDeltaT
if (fMoveDeltaX != <span style="color: #.0f || fMoveDeltaZ != <span style="color: #.0f)
Vector3 kForward = transform.
Vector3 kRight = Vector3.Cross(kUpDirection, kForward);
Vector3 kNewPos = transform.
kNewPos += kRight * fMoveDeltaX;
kNewPos += kForward * fMoveDeltaZ;
transform.position = kNewP
//-----------------------------------------------------------------
阅读(...) 评论()五分钟教你做一个VR场景漫游!
五分钟教你做一个VR场景漫游!
今天给大家带了的是VR开发-简单的场景漫游。说到VR,这个名字可能在去年是红遍天了,可是对于我们的普通人来说还是不知道什么VR,VR-虚拟现实技术是一种可以创建和体验虚拟世界的计算机仿真系统,它利用计算机生成一种模拟环境,是一种多源信息融合的、交互式的三维动态视景和实体行为的系统仿真使用户沉浸到该环境中。目前市场上主流的VR设备有暴风眼镜、OculusRift、HTCVive等,本文我们将带领大家去使用HTCVive来开发一个简单的场景漫游游戏。那么这次我们的开发需要一台Windows电脑、HTCVive设备一套。首先先打开我们的Unity,然后新建一个工程,然后在AssetStore里面搜索steam下载画圈的这个并导入工程导入成功后我们在导入一个系统的资源包Environment资源包好了,接下来我们开始搭建一个简单的游戏场景,这里需要大家对地形系统有个简单的了解创建一个地形设置地形的宽和长,这样可以减少渲染,减轻CPU的负担简单介绍下这里的7个按钮,第一个是凸用来画山的,第二个是凹用来沟壑的,第三个相当于PS的羽化,磨边的,第四个是上颜色的,第五个是种树的,第6个事种草的,最后一个是设置我们先简单的搭建一个地形到了这里我们的前期操作也就完场了,接下来就是我们的核心内容,将VR嵌套到我们的场景里面,其实很简单,仅仅需要一步就可以完成将这个预设体拖到Hierarchy面板中,然后干掉MainCamera,我们就会发现Game窗口发生变化,然后这个时候我们再配合值HTCVive使用,就可以感受一下场景漫游了点击运行效果图是不是很简单?如有雷同,你就是抄我的!--大展
本文仅代表作者观点,不代表百度立场。系作者授权百家号发表,未经许可不得转载。
百家号 最近更新:
简介: 网络时代的一些现象分析
作者最新文章}

我要回帖

更多关于 unity如何做火焰特效 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信