visual studio开发的unity3d怎么开发游戏

 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
Unity3d游戏引擎下的射击游戏开发
下载积分:500
内容提示:Unity3d游戏引擎下的射击游戏开发
文档格式:DOC|
浏览次数:102|
上传日期: 00:36:26|
文档星级:
全文阅读已结束,如果下载本文需要使用
 500 积分
下载此文档
该用户还上传了这些文档
Unity3d游戏引擎下的射击游戏开发
关注微信公众号热销排行榜
1.2.3.4.5.6.7.8.9.10.
最近浏览的其他商品
浏览更多同类商品
【 】??????????
Unity 5实战-使用C#和Unity开发多平台游戏
978-7-302-43674-4
清华大学出版社
出版日期:
读者对象:
¥43.70&&&
立刻节省:¥16.10
所属分类:
Unity 入门经典
引用完整示例项目,快速掌握Unity游戏开发平台
免费提供书中所有源代码熟练掌握基于2D和3D驱动的游戏技能涵盖Unity 5.0Unity 入门经典,引用完整示例项目,快速掌握Unity游戏开发平台,免费提供书中所有源代码,熟练掌握基于2D和3D驱动的游戏技能,涵盖Unity 5.0
本书帮助读者使用Unity游戏开发平台构建成功的游戏。 你将使用强大的C#语言、Unity的可视化工作流工具和顶尖的渲染引擎来构建和部署移动、桌面和控制台游戏。Unity的单一基于代码的方式最小化了在开发工具间切换的影响,并将你的关注点集中在制作美妙的交互体验上。 本书教授你如何编写和部署游戏。你将从头开始掌握Unity的工具集,书中介绍了从应用编码者到游戏开发者所需的技能。每个示例项目都阐述了特定的Unity特性和游戏开发策略。阅读完本书内容和完成书中练习后,你将掌握创建生动的基于2D和3D驱动的游戏应用的各方面技能。 主要内容
编写跑动、跳跃和交互的角色
构建管理游戏状态的代码架构
将游戏连接到互联网以下载动态数据
将游戏部署到平台(包括网页和移动等)
涵盖Unity 5.0。
Joseph Hocking是一位交互式媒体开发方面的软件工程师。他就职于Synapse Games公司并在芝加哥哥伦比亚学院教授游戏开发课程。
初识Unity 3
为什么Unity如此优秀 4
Unity的优势 4
要意识到的缺点 5
使用Unity构建的游戏案例 6
如何使用Unity 9
Scene视图、Game视图和工具栏 10
使用鼠标和键盘 11
Hierarchy标签和Inspector 12
Project和Console标签 12
开始使用Unity编程 13
代码在Unity中是如何运行的:脚本组件 14
使用MonoDevelop,跨平台的IDE 15
打印到控制台:Hello World! 16
构建一个让你置身3D空间的演示 19
在开始之前 20
对项目做计划 20
了解3D坐标空间 21
开始项目:在场景中放置对象 22
第二步:地板、外墙和内墙 22
灯光和摄像机 25
玩家的碰撞器和视口 26
让东西移动:应用变换的脚本 27
图示说明如何通过编程实现旋转 27
编写代码实现图中演示的运动 27
本地和全局坐标空间 29
用于观察周围的组件脚本:MouseLook 30
跟踪鼠标运动的水平旋转 31
在一定范围内的垂直旋转 32
同时水平和垂直旋转 33
键盘输入组件:第一人称控件 36
响应按下的键 36
设置独立于计算机运行速度的运动速率 37
为了碰撞检测,移动CharacterController 38
调整组件为走路而不是飞翔 39
为3D游戏添加敌人和子弹 43
通过射线射击 44
什么是射线发射 44
使用命令ScreenPointToRay来发射 45
为准心和击中点添加可视化提示 46
脚本化反应的目标 49
确定被击中的对象 49
警告目标它被击中 50
基本漫游AI 52
图解基础AI的工作原理 52
使用射线发射发现障碍物 52
跟踪角色状态 54
产生敌人预设 55
什么是预设 55
创建敌人预设 56
在不可见的SceneController中实例化 57
通过实例化对象进行射击 59
创建子弹预设 59
发射子弹并和目标碰撞 60
伤害玩家 63
为游戏开发图形 65
了解美术资源 65
构建基础3D场景:白盒 67
白盒的解释 68
为关卡绘制地板平面图 68
根据平面图布局几何体 69
使用2D图像给场景贴图 70
选择文件格式 71
导入图像文件 72
应用图像 73
使用贴图图像产生天空视觉效果 75
什么是天空盒 75
创建一个新天空盒材质 76
使用自定义3D模型 77
选择文件格式 78
导出和导入模型 79
使用粒子系统创建效果 81
调整默认效果的参数 82
为火焰应用新贴图 83
将粒子效果附加到3D对象上 84
轻 松 工 作
使用Unity新的2D功能构建一款记忆力游戏 89
设置2D图形 90
为项目做准备 90
显示2D图像(亦称精灵) 92
将摄像机切换为2D模式 94
构建卡片对象并让它响应单击 95
从精灵构建对象 95
鼠标输入代码 96
当单击时显示卡片 96
显示不同的卡片图像 97
通过程序加载图像 97
通过不可见的SceneController来设置图像 98
实例化一个网格的卡片 100
打乱卡片 101
实现匹配和匹配得分 103
保存并比较翻开的卡片 104
隐藏错误卡片 104
显示积分的文本 105
重启按钮 106
使用SendMessage编写UIButton组件 107
从SceneController中调用LoadLevel 109
在3D游戏中放置2D图形用户界面 111
在开始写代码之前...... 112
直接模式GUI还是高级2D界面 112
规划布局 113
导入UI图像 114
设置GUI显示 114
为界面创建画布 115
按钮、图像和文本标签 116
控制UI元素的位置 118
编写UI中的交互 119
编写不可见的UIController 120
创建弹出窗口 121
使用滑动条和输入域设置值 124
通过响应事件更新游戏 126
集成事件系统 127
从场景中广播和侦听事件 127
从HUD广播和侦听事件 128
创建第三人称3D游戏:玩家移动和动画 131
调整摄像机视图为第三人称视角 133
导入一个用于观察的角色 133
将阴影添加到场景 134
摄像机环绕玩家角色 135
编写程序控制camera-relative的移动 137
旋转角色,以朝向移动方向 138
朝着方向向前移动 140
实现跳跃动作 141
应用垂直速度和加速度 142
修改地面检测来处理边缘和斜坡 143
设置玩家角色上的动画 146
在导入的模型上定义动画剪辑 148
为动画创建动画控制器 149
编写操作Animator组件的代码 153
在游戏中添加交互设施和物件 155
创建门和其他设施 156
由按键控制开/关的门 156
在开门之前检查距离和朝向 157
创建一个变色监控器 159
通过碰撞与对象交互 160
和具有物理功能的障碍物碰撞 160
用一个压力板来触发门 161
收集当前关卡游戏中分散的物件 163
管理仓库数据和游戏状态 165
设置玩家和仓库管理器 165
编程实现游戏管理器 166
把物品存储在集合对象中:List与Dictionary 170
使用和装备物品的仓库UI 173
在UI中显示仓库物品 173
装备一个用来开门的钥匙 175
通过使用血量包来恢复玩家的血量 177
冲 刺 阶 段
将游戏连接到互联网 181
创建户外场景 182
使用天空盒生成天空视觉效果 182
通过代码设置大气环境 183
从互联网服务下载天气数据 185
使用协程请求WWW数据 188
解析XML 192
解析JSON 193
基于天气数据影响场景 195
添加一个网络布告栏 196
从互联网加载图像 196
在布告栏上显示图像 199
缓存下载的图像以供重用 200
将数据发送到Web服务器 201
跟踪当前的天气:发送post请求 202
PHP中的服务器端代码 204
播放音频:音效和音乐 205
导入音效 206
所支持的文件格式 206
导入音频文件 207
播放音效 208
音频剪辑、音源和声音侦听器 208
设定一个循环声音 209
从代码触发音效 210
音频控制接口 211
建立中心AudioManager 212
音量控制UI 214
播放UI声音 217
背景音乐 218
播放循环音乐 218
独立控制音乐的音量 221
歌曲间的淡入淡出 223
将各部分整合为一个完整的游戏 227
再次利用项目来构建角色扮演RPG 228
将多个项目的资源和代码装配在一起 228
编写指向-单击的控件:移动和设备 231
使用新界面替换旧GUI 235
开发总体的游戏结构 241
控制任务流和多关卡 242
通过到达退出条件完成一个关卡 245
当被敌人捕捉时关卡失败 247
处理玩家游戏过程中的进度 249
保存并加载玩家进度 249
通过完成三个关卡打败游戏 253
将游戏部署到玩家的设备 255
构建桌面环境:Windows、Mac和Linux 259
构建应用 259
调整Player Settings:设置游戏的名称和图标 260
平台依赖的编译 261
为Web构建游戏 262
Unity Player和HTML/WebGL 262
构建Unity文件和一个测试Web页面 262
与浏览器中的JavaScript通信 263
构建移动应用的平台:iOS和Android 264
设置构建工具 265
贴图压缩 268
开发插件 269
场景导航和键盘快捷键 279
使用鼠标进行场景导航 279
一般使用键盘快捷键 280
与Unity一同使用的外部工具 281
编程工具 281
Visual Studio 281
Android SDK 282
SVN、Git或Mercurial 282
3D美术应用 282
3ds Max 282
Blender 283
2D图像编辑器 283
Photoshop 283
TexturePacker 283
音频软件 283
Pro Tools 284
Audacity 284
在Blender中建模一个板凳 285
构建网格几何体 285
模型贴图映射 288
在线学习资源 293
附加的指南 293
代码库 294
客服专线:010- 客服邮箱:
Copyright & 北发图书网 2007,
All Rights Reserved
北京北发电子商务股份有限公司 版权所有下次自动登录
现在的位置:
& 综合 & 正文
Unity3D ——强大的跨平台3D游戏开发工具教程
众所周知,Unity3D是一个能够实现轻松创作的多平台的游戏开发工具,是一个全面整合的专业游戏引擎。在现有的版本中,其强大的游戏制作功能已经达到让人瞠目结舌的地步。尤其是它在3.0版本里面制作的那款第一人称战争游戏,画质效果丝毫不逊色于当下十分流行的《穿越火线》、《战地之王》等主流第一人称射击游戏。下图为Demo中的显示效果:
看到如此绚丽的效果,让我马上走进精彩的Unity3D世界吧!首先要下载Unity3D,在官网上就可以完成。
Unity3D的官方网站:
Unity3D的下载地址:
下载好之后,必须要到官方网站上注册一个邮箱,才能获得30天的试用时间。试用后如果您对这款软件满意,还可以在购买后继续使用。当然,如果您购买了Pro版本的Unity3D,将会获得更多的功能。第一章Unity3D的基本界面介绍
Unity3D的基本界面非常简单,几个窗口就可以实现几乎全部的编辑功能。主界面如图1.1所示:场景面板:该面板为Unity3D的编辑面板;您可以将您所有的模型、灯光、以及其他材质对象拖放到当前场景中。构建游戏中所能呈现的景象。动画面板:与场景面板不同,该面板是用来渲染场景面板中的景象的。该面板不能用作编辑,但却可以呈现完整的动画效果。显示的内容取决于场景摄像机的设置。层次清单栏:该面板主要功能是显示放在场景面板中的所有的物体对象。项目文件栏:该面板主要功能是显示该项目文件中的所有资源列表。除了模型、材质、字体等,还包括该项目的各个场景文件。对象属性栏:该面板栏会呈现出任何对象的固有属性,包括三维坐标、旋转量、缩放大小、脚本的变量和对象等等。场景调整工具:可以改变您在编辑过程中的场景视角、物体世界坐标和本地坐标的更换、物体的法线中心的位置,以及物体在场景中的坐标位置,缩放大小等等。
菜单栏:接下来我重点介绍一下菜单栏。
菜单栏中包含有八个菜单选项:分别是File【文件】、Edit【编辑】、Assets【资源】、GameObject【游戏对象】、Component【组件】、Terrain【地形】、Window【窗口】、Help【帮助】。
每个菜单选项又有自己的子菜单,总结如下:
1、File【文件】
创建新的场景。就像是游戏中的一个一个的场景一样,Unity3D为用户提供了方便的场景管理,用户可以随心所欲的创建出自己想要的场景。然后再把每个场景链接起来组成一个完成的游戏。
Open Scene
打开一个已经创建的场景
Save Scene
保存当前场景
Save Scene as
当前场景另存为
New Project
新建一个新的项目工程。用户想要制作出自己的游戏,第一步就是创建一个属于这个游戏的工程,这个工程是所有元素的基础。有了工程之后,用户就可以在这个工程里面添加自己的场景。
Open Project
打开一个已经创建的工程
Save Project
保存当前项目
Build Setting
项目的编译设置。在编译设置选项里面,用户可以选择游戏所在的平台及对工程中的各个场景之间的管理。可以添加当前的场景加入到工程的编译队列当中。其中的Player Settings选项中可以设置程序的图标,分辨率,启动画面等。
Build & Run
编译并运行项目
退出Unity3D
2、Edit【编辑】
撤销上一步操作
重复上一步动作
复制并粘贴
Frame Selected
选择一个物体后,使用此功能可以把视角调到观察这个选中的物体上
在资源区可以按资源的名称来查找
Select All
可以选中所有资源
Preferences
选项设置。对Unity3D的一些基本设置,如:选用外部的脚本编辑,皮肤,各种颜色的设置。以及一些用户基本的快捷键的设置。
编译并在Unity3D中运行程序
单步执行程序
Load Selection
Save Selection
Project Settings
项 目设置。其中包括输入设置,标签设置(对场景中的元素设置不同类型的标签,方便场景的管理),音频设置,运行的时间的设置,用户设置,物理设置(包括重 力,弹力,摩擦力等),品质设置(这个比较重要,用户在这个选项里面可以设置工程默认的渲染品质),网络管理,编辑器管理等
Render Settings
渲染设置。如果觉得整体画面的色彩质量不尽如人意,可在此处进行调节
Graphics Emulation
图形仿真。主要是配合一些图形加速器的处理
Network Emulation
网络仿真。可以选择相应的网络类型进行仿真
Project Settings
项目设置。其中包括输入设置,标签设置,音频设置,运行的时间的设置,用户设置,物理设置,品质设置,网络管理,编辑器管理等。
Snap Settings
临时环境,或理解为快照设置。
3、Assets【资源】
重新导入资源
创建功能。可以用来创建各种脚本,动画,材质,字体,贴图,物理材质,GUI皮肤等
Show In Explorer
打开资源所在的目录位置
打开选中文件
删除选中的资源文件
Import New Asset
导入新的资源
刷新,用于导入资源包之后
Import Package
导入资源包。当创建项目工程的时候,有些资源包没有导入进来,在开发过程中有需要使用,这时可以用到导入资源包的功能
Export Package
到处资源包
Select Dependencies
选择依赖项
全部重新导入
Sync MonoDevelop Project
同步开发项目
4、GameObject【游戏对象】
Create Empty
创建一个空的游戏对象。可以对这个空的对象添加各种组件,即各种属性。在Component里面会讲到
Create Other
创建其他类型的游戏对象。这里面包括了很多内容,基本上囊括了Unity3D所支持的所有对象。其中有粒子系统,摄像机,界面文字,界面贴图,3D的文字效果,点光源,聚光灯,平行光,长方体,球,包囊,圆柱体,平面,表面,音频混音区域,树,玩偶,风域等
Center On Children
这个功能是作用在父节点上的,即把父节点的位置移动到子节点的中心位置
Make Parent
选中多个物体后,点击这个功能可以把选中的物体组成父子关系,其中在层级视图中最上面的那个为父节点,其他为这个节点的子节点
Apply Change To Prefab
应用变更为预置
Move To View
这个功能经常用到,把选中的物体移动到当前编辑视角的中心位置,这样就可以快速定位
Align With View
把选中的物体移动到当前编辑视角的中心位置,深度为0,即移动到和视角同一个平面上
Align View To Selected
把编辑视角移动到选中物体的中心位置
5、Component【组件】
添加网格属性
粒子系统。能够造出很棒的流体效果
物理系统。可以使物体带有对应的物理属性
音频。可以创建声音源和声音的听者
Miscellaneous
脚本。Unity内置的一些功能很强大的脚本
Camera-Control
摄像机控制
6、Terrain【地形】
Creat Terrain
Import Heightmap-Raw
导入高度图
Export Heightmap-Raw
到处高度图
Set Resolution
设置分辨率
Create Lightmap
创建光影图
Mass Place Trees
批量种植树
Flatten Heightmap
展平高度图
Refresh Tree And Detail Prototypes
刷新树及预置细节
7、Window【窗口】
Next Window
Previous Window
前一个窗口
检视窗口,主要指各个对象的属性,也可称为属性面板
动画窗口。用于创建时间动画的面板
Asset Server
8、Help【帮助】
About Unity
Enter Serial Number
输入序列号
Unity Manual
Reference Manual
Scripting Manual
Unity Forum
Welcome Screen
Release Notes
Report a Problem
第二章 Unity3D的简单预览
每个Unity3D版本都会自带一个Demo源文件。在3.0的正式版中,自带的Demo就是网上展示的那款强大的射击游戏。在一般情况下,您只要第一次打开Unity3D v3.0就会看见自带的那个Demo项目文 件了。但如果Unity3D并没有打开这个项目文件,你也可以在Unity3D里面的“File”菜单下点击“Open Project”选项,在“C:\Documents and Settings\All Users\Documents\Unity Projects”这个路径下找到项目文件夹“Bootcamp Demo”,选择并打开它。打开项目之后,在舞台场景面板中依然什么都没有显示的话,请在Project【项目文件栏】双击场景文件
。稍等片刻之后,该舞台场景的所有对象就可以导入到舞台场景之中。导入成功之后效果如图2.1所示:
点击一下中间的播放按钮
做一下测试(如果您的机器配置不是很高,可能等待的时间会稍长)。稍等片刻,您就可以在Game【动画面板】中看到一个正在运行的射击游戏了。
在这个游戏场景中,您会看到比其他主流游戏还要细腻逼真的画面效果,例如各个物体的实时阴影。如图2.2所示:
当然如果您的机器配置较高,您还可以点击“Esc”键来将游戏画质进一步调高。调节界面如图2.3所示:
下面我们来看下调整画面效果前后的游戏画面对比,如图2.4.1和图2.4.2所示:
我们很明显的就可以感觉到河水的效果以及场景阴影的效果都真实了许多。
第三章 在Unity3D中创建一个山势地形图
前面两章我们比较细致的对Unity3D的界面和表现效果等进行了说明与讲解。相信很多朋友在看过Unity3D如此强大的画面效果后都已经按耐不住想要自己动手操作了,接下来我们就尝试在Unity3D中创建一个山势地形图。
第一步:创建一个新项目。
打开Unity3D软件,它会自动载入上一次我们打开过的“Bootcamp Demo”项目文件。不用管它,在软件打开之后点击
,在弹出的 对话框中找到
输入创建项目的文件夹地址,或者点击后面的 选择一个文件夹地址(注:已创建Unity3D项目的文件夹,不能再当作新创建项目的文件夹来使用,否则会因无法找到文件而报错),然后在
中选择要导入的项目文件包,每个文件包都带有一些插件功能,由于我们第一次创建项目文件,所以我们将所有的复选框都打上勾。但这样会致使Unity3D在开始加载的时候速度偏慢,等以后我们大家对各个插件包的作用都熟悉了,在创建Unity3D项目文件的时候,我们只需要勾选需要使用到的插件包就可以了。选项面板如图3.1所示:
全部设置完成后,我们点击
创建项目。
第二步:创建地形。
在创建一个新项目后,我们会看见新项目的各个面板中,只有Project【项目文件栏】包含了
两个文件夹,这两个文件夹里面装的就是在创建项目时导入项目文件包里的所有文件。除此之外,其他版面都是空空如也。不要着急,万丈高楼平地起,我们马上就利用文件包和系统功能来丰富各个版面的内容。首先我们点击菜单栏上的
——& ,创建一个带有地形属性的平面,如图3.2所示:
第三步:添加摄像机。
创建好地形后,我们会发现Game【动画面板】中依然没有任何画面。其实道理很简单,就像演唱会的实况直播一样。场景都搭建好了,演员也在舞台上表演,却没有架上摄像机,电视机前的观众怎么能够看到现场的画面呢?
接下来我们就创建一个摄像机。点击
——& ,这样场景中就会创建一个摄像机,这是您就可以在Game【动画面板】中观看到摄像机所观察到的星象了。如图3.3所示:
第四步:调整地形大小。
系统创建的地形默认大小是的面积,实际编辑的时候会显得很大,不方便操作,所以我们对创建的地形面积进行调整,以便我们后续的编辑。
点击菜单栏上的
,弹出 面板来调节地面的大小。将
后面的数字改成500.然后将 后面的数字也改成500,设置好之后点击
按钮将原来的地形改成500*500大小的面积。
第五步:给场景编辑材质。
在场景面板中选中刚才创建的地面对象
,如果您觉得场景中不是很方便选择所需要的对象,那么您还可以在Hierarchy【层次清单栏】选中您所需的对象,该栏中包含了所有场景面板中的物体对象。选中地面对象
之后,我们会在Inspector【属性面板】中马上发现与之对应的属性,包含有:Position【坐标】、Rotation【旋转量】、Scale【缩放尺寸】,以及地面对象固有的 和
。如图3.4所示:
这个像画笔一样的按钮,是用来改变地面材质的。我们点击它之后,可以在下面找到
按钮,点击——& 来到
界面,如图3.5所示:
然后我们单击
后面的圆圈,就可以为地面添加您所喜欢的材质了。选好之后点击
按钮来填入新材质。添加材质之后的地面如图3.6所示:
如果您觉得这个地形的材质过于简单,那么您可以继续点击
,来添加第二个材质,然后在 中选择您想要的笔刷形状,如图3.7所示:
接着就可以在场景面板中刷出新材质的区域范围了。如图3.8所示:
第六步:制作山峰。
完成了地面材质的制作,接下来就可以制作山峰了。
这三个按钮其中的一个,选择合适的笔刷,在地形图中可以刷出高山的形状,如图3.9所示:
如果觉得现在刷出来的山峰太高了,活着觉得某处的山有些多余,可以按住Shift键不放,用刚才选择的笔刷进行反向平刷即可。
第七步:种植草和树木。
接下来就可以给地形种植一些草和树木了。具体的种草按钮是
,种树的按钮是
。草和树木的设置方法与地形材质的设置方法十分雷同,都是先点击 按钮来添加您所需要的花草和树木,然后在场景面板中刷出您所需要的区域即可。如图3.10所示:
这里大家需要注意一点,Unity3D在编辑模式下为了节约资源,采取了资源剔除的方法。如果您在利用笔刷“种草”的过程中,没有看到您所“种”上去的草,这是您只需将画面拉近即可观察到草的效果了。如图3.11所示:
第八步:设置地形上的风速、阴影效果。
种上了草和树木,如果在游戏中运行时静止不动,会让人感觉很不自然,所以我们在地形中添加上风和阴影的效果,让草随风摆动,这样会变得更加逼真。
按钮,来设置地形上的风速、阴影等效果。如图3.12所示:
第九步:添加光照效果。
地形相关的所有效果已经设置完毕了,但是我们发现在Game【动画面板】中的画面很暗,这是由于没有加入灯光的缘故。
——& ,来创建一个太阳光效果。如图3.13所示:
太阳光和太阳自身的位置关系并不大,只与自身的角度有关,这一点和我们日常生活中的太阳光是一致的。所以为了让场景变得更亮,我们就需要用到场景调整工具中的旋转按钮 来对太阳光进行旋转。当然您也可以在属性面板中对它进行调节。根据我们生活的常识,当太阳光直射地面的时候,光线最强。调整之后的效果如图3.14所示:
怎么样,这时的Game【动画面板】中的画面是不是亮了许多?
第十步:摄像机观察设置。
为了让摄像机全方位的观察我们刚才所创建的场景,您可以在Project【项目文件栏】中找到
、 这三个脚本文件,并将它们依次拖放到场景中的摄像机上面。如图3.15所示:
如果您觉得在Project【项目文件栏】中的文件过多,不便于寻找,您还可以在Project【项目文件栏】上方的搜索框输入他们的名字来进行搜索。这 样很快就能找到对应的文件了。放置完成后,点击测试按钮,您就可以身临其境的在您刚才创建的Game【动画面板】中进行漫游了。用鼠标控制视角,用键盘的方向键控制行走。在漫游的过程中,您可以清晰的看到刚才创建的草随微风轻轻摆动。效果如图3.16所示:
第十一步:添加天空效果。
这时我们从Game【动画面板】中看到的天空是没有任何效果的,接下来我们给场景添加一个天空盒,使场景具有蓝天的效果。
选中场景中的摄像机对象,然后点选菜单栏中的
——& ,为摄像机添加一个天空盒。添加成功之后,我们就能够在摄像机的属性面板中找到刚才添加的天空盒了。
接着我们去Project【项目文件栏】找到“Standard Assets”文件夹下的“Skyboxes”文件夹。这里面摆放了许多关于天空的材质球,您只需要选中一个您喜欢的天空材质球,并拖放给摄像机离的天空 盒【Skybox】的材质属性【Custom Skybox】,就可以让场景的天空布满这种材质效果。如图3.17和图3.18所示:
选中场景中的光照对象,然后在他的属性面板中找到“Flare”,并点选它后面的圆圈
。在它弹出的
对话框中选中双击 这种光照效果,这样就可以使得您在动画模式中清楚的看见太阳所在的位置。再运行一下动画,看看效果。
第十二步:添加光照阴影效果。
细心的朋友一定会发现,现在场景中的树木等物体是没有阴影的,这很不自然。所以为了让场景更加的逼真,我们还可以为场景添加光照阴影效果。
具体做法如下:选中光照对象,在它的属性面板中找到
,它默认的是
(没有阴影),您可以将它改成“Soft Shadows”【软渲染阴影】或者是“Hard Shadows”【硬件渲染阴影】。“Soft Shadows”【软渲染阴影】以消耗CPU的计算为代价来产生阴影效果,这种模式运行速度较慢,但对于机器配置比较落后的使用者是唯一的选择。 “Hard Shadows”【硬件渲染阴影】可利用新一代GPU的显卡加速功能来为游戏进行阴影效果的渲染处理,其运行速度比较快,渲染效果也比较理想。但无论您选 择哪一个选项,动画场景的物体都会相对于阳光长生阴影效果。如图3.19所示:
第十三步:保存项目。
所有的场景效果已经调试完毕后,按下Ctrl+S来保存场景文件,取名叫做“text”以便日后调用。如果保存成功,您会在您项目的Project【项目文件栏】中看到一个这样的文件
第四章 为地形添加水源、水流以及水下的模糊效果
制作好了地形的各种效果,接下来我们给场景添加一些水效果,使场景更加丰富。
第一步:添加水面
由于我在上一次的地形创作中就已经在山峰之间制作了一块洼地,它就可以作为一个放置湖水的地方。如果您上次的创作并没有这样的地形,那么请您重新创建一个山势地形图,就当作自己的一次练习吧。
在场景面板中点击Y方向的绿色箭头
,切换到顶视图,这样可以便于我们很快的找到洼地所在的地方。如图4.1所示:
然后用鼠标滚轮迅速的推进观测距离。如图4.2所示:
接着再到Project【项目文件栏】找到“Standard Assets”文件夹下的
(仅限专业版使用,如果您使用的版本是非专业版本,请转到
)文件夹中,拖拽一个 【白天光照效果的水模型】到洼地的中央,并利用场景调整工具中的缩放工具
,将水模型调整到合适的大小。如图4.3所示:
紧接着我们再点击场景面板中右上角的白色小方块
,将视角切换到透视图。然后利用场景调整工具
,将水模型调整到合适的高度。如图4.4所示:
这时您只需要在播放时,将摄像机移动到洼地这个地方就可以看见湖水的效果了。
第二步:添加瀑布。
现在看来效果略显单调,既然是山中泉水我们还得有一些瀑布和溅起的水花。为了节约查找的时间,我们直接在Project【项目文件栏】上方的搜索框输入字符“water f”,这样就可以查处如图所示的材质和模型。如图4.5所示:
在这里面,
是一个喷泉模型,
是一个水面的飞溅模型, 是一个瀑布模型。我们先拖入一个
到洼地,然后利用场景调整工具来调整它的位置和角度。如图4.6所示:
这时的瀑布略显小了一些,我们可以先选中它,然后到它的属性面板里面去调整成您想要的效果。如图4.7所示:
第三步:添加水面飞溅模型。
接下来我们会看到瀑布落到水面是没有水花飞溅的效果的,这不合常理。于是我们在瀑布下的水面上方放置一个水面飞溅模型
。由于它的噶偶一定要和水面高度一致,所以我们先点选水平面,看看它的Y轴坐标,然后复制到
属性面板中同样的位置,以确保它是伏在水面上的。紧接着再到它的属性面板中调整它的属性,让模型效果调整成您想要得到的效果。如图4.8所示:
第四步:添加水下模糊效果。
我们运行一下游戏 ,然后将镜头移动到泉水的水面下。如图4.9所示:
大家会发现,水下的视觉和在地面上的视觉效果是完全一样的。这和我们平时的生活现状是不相符的,所以我们还得做一下相应的调整。首先点击
——& ,创建一个立方体,并运用场景调整工具将它调整到整个水洼的实体部分。(注:运用其他形体也可以,其主要是用来覆盖水洼的实体部分,以用来和摄像机做碰撞检测,让摄像机的镜头变得模糊。)如图4.10所示:
接着,确保您创建的这个cube是被选中状态,到它的属性面板中,将“Box Collider”卷展栏中的“Is Trigger”复选框打上勾(如果这里不打勾,这个cube将作为一个实物,当摄像机撞上它时,就像撞上墙一样,无法穿过。)如图4.11所示:
然后再将“Mesh Renderer”卷展栏下的所有复选框全部勾掉,使这个立方体只作为一个形体存在,而不让它在场景中作出任何的显示渲染。如图4.12所示:
接着在属性面板的最上方将它的名字由“Cube”改为“WaterColler”
的下拉框 中新添加一个“WaterColler”的标签分类。然后将这个“WaterColler”水洼碰撞体的Tag也改成“WaterColler”。
然后我们在菜单栏中选中
——& ,新添加一个JS脚本。到Project【项目文件栏】找到刚才新建的JS脚本
,按下F2键更改它的名字为“UnderWatereffect”,并双击编辑它,输入代码如图4.13所示:
输入完毕,按Ctrl+S保存代码并关闭退出。然后将代码拖拽给摄像机使用。重新运行一下游戏,将摄像机移动到水下,就可以看到一片模糊的景象了。如图4.14所示:
图4.14第五章 Unity3D中脚本的简单概述
和其他的3D软件一样,Unity3D作为一个类播放器的3D集成软件,具有良好的时间层级关系。比如Start()里面的语言,总是在播放器初始化时执行一次,而后就不再执行。例如下面用JS写的一个例子。在菜单栏上选中
——& ——&
,将下面这段代码拖拽给Hierarchy【层次清单栏】中任意一个对象。
您就会在播放器刚开始播放的时候,在左下角的控制台面板中看到
这句话,证明您的Game播放器已经开始工作了。如图5.1所示:
(注:这个控制台买那般以后在大家使用的时候会经常用到它,因为它可以用作您代码片段的调试,以及您程序出错了的提示框,详细的提示您出错的原因所在。)
当然有了初始化函数,就一定会有刷帧函数Update(),该函数内所有的代码会在播放器每播放一帧时执行。例如下面用JS写的一个例子,在菜单栏上选中
——& ,输入如下代码:
该代码会在播放器每播放一帧的时候,显示游戏开始到现在所消耗的时间值。
Unity3D中有着非常强大的接口处理功能,您可以在代码中为对象制定任意一个空接口用于和对应类型的对象进行交互,例如下面用JS写的一个例子,在菜单栏上选中
——& ,输入如下代码:
该代码为对象添加了一个在Z轴方向上的初始速度,如果在没有其他外力的作用下,物体将一直沿着Z轴方向以5的速度运动。并且当您将这段代码拖拽给一个物体对象后,它的这个初始速度可以作为一个接口在它的属性面板中进行修改。如图5.2所示:
除了数字作为接口外,接口还可以是对象,例如下面用JS写的一个例子,在菜单栏上选中
——& ,输入如下代码:
您可以将这段代码拖拽给Hierarchy【层次清单栏】中任意一个对象,因为它在这里定义了一个Transform类接口对象cubeGO,所以它几乎与拖拽的对象无关。拖拽成功之后来到该物体的属性面板中,您可以看到这样一个属性卷展栏
,cubeGO的后面有个很明显未定义对象填写栏 ,然后我们把想要使之运动的物体拖拽到这个上面来,当我们运行游戏时,只要按下“G”键就可以看到被拖拽的物体作为“cubeGO”的指代对象,朝着Z轴方向运动了。
第六章 Unity3D中的C#Script编程的注意事项
也许您在学习Unity3D之前,已经是一位C#的编程高手了。但在Unity3D中的C#并不像真正的C#那般强大,在Unity3D的C#中必须全部继承自MonoBehaviour。下面为一段C#Script的完整代码:
除此之外它不支持空间命名,但官方说他们很有可能会在以后的版本中支持这一功能。
在Unity3D中,JavaScript和C#Script的编程效果近乎一样。只是为了不同程序爱好者设立了不同的编程模式。并且JavaScript所编写的代码对象可以和C#Script编写的代码对象交叉使用,并不发生任何冲突。
第七章 修改MonoDevelop编辑器为Unity3D的默认编辑器
通常情况下Unity3D默认的编辑器都是“UniSciTE”,它用起来十分轻巧快捷,就像记事本一样。
但如果要开发一些大型的项目, 显然“UniSciTE”简单的功能就不足以支撑它的工作了。但如果您每次在编辑脚本的时候,都去用“MonoDevelop”一个个的打开,又会显得很 麻烦。所以我们就要在Unity3D中做一些设置,让“MonoDevelop”成为默认的脚本编辑器。具体的步骤是:在菜单栏中找到
——& ,在弹出的
对话框中找到 并将它后面的下拉框选中为
,浏览到我们“MonoDevelop”可执行文件存放的地方。这个路径一般都和您的Unity3D文件夹在一起。
设置好之后,重新再Unity3D中点选脚本文件,就会发现已经能用“MonoDevelop”软件打开了,但一次打开的时候会稍显慢一点,因为“MonoDevelop”需要加载很多东西。
当然,如果您是一个C#和Visual Studio忠实的编程爱好者,您也可以用同样的方法来设置Visual Studio软件的路径,让Visual Studio成为您Unity3D脚本的默认编辑器。
&&&&推荐文章:
【上篇】【下篇】

我要回帖

更多关于 visual studio开发 的文章

 

随机推荐