实例化预设使用上面章节中描述的创建预设的方法。一旦你创建了预设,你就可以简单快速地得到一个预设的拷贝,称为实例。为了创建任何预设的一个实例,从工程视图中拖动一个预设到层次或场景视图中。添加组件和脚本当你选中任何预设或物体时,你可以通过使用组件来向其中添加一些额外的功能。脚本也是组件的一种类型。缺省情况下脚本也包含在组件菜单中。你可以通过Components→Camera-Control来找到它。......
2025-09-30
1)介绍
目的:通过尝试制作一款使用玩家角色把小球弹飞的简单小游戏,熟悉使用Unity进行游戏开发的基本流程。
软件环境:Unity 2018.2.16,Visual Studio 2017。
2)创建新项目
(1)启动Unity后将出现一个并列显示Projects和Getting started的窗口。单击窗口中央的New Project按钮或者右上方的NEW文本标签,窗口下半部分内容将发生改变,出现Project Name文本框等内容(见图8-1)。
图8-1 创建项目
(2)如果Unity曾经被启动过(比如我),窗口中央将不再显示New Project按钮,取而代之的是曾经载入过的项目文件列表。这时右上方的NEW文本标签依然会显示,可以通过它来创建项目。
接下来在指定的位置上依次输入项目名称、存储路径、项目创建者,单击右下角的创建项目,这样一个Unity项目就创建好了(见图8-2)。
图8-2 项目创建完成
图8-3 创建地面
提醒:虽然文件夹名称和项目可以取任意名字,但是最好不要使用汉字。因为如果路径中包含了汉字,有可能导致Unity编辑器在保存和读取文件时出错。
3)创建地面(创建游戏对象)
(1)在窗口顶部菜单中依次单击GameObject→3D Object→Plane按钮(见图8-3)。
(2)场景视图中央将出现一个平板状的游戏对象,同时层级视图中也增加了一项Plane(平面)(见图8-4)。
4)创建场景,保存项目
(1)观察Unity的标题栏,能发现在最顶端文本右侧有一个“”符号。
图8-4 增加平面后的场景视图
这个符号表示当前项目文件需要保存。保存后该符号就会消失,之后如果又做了什么操作需要重新保存,该符号会再次出现。在窗口顶部菜单中依次单击File→Save Scene按钮(见图8-5)。
图8-5 保存
(2)保存完毕后,项目视图中也添加了GameScene项(如果无法看见,可以尝试单击左侧的Assets标签),如图8-6所示。
5)调整场景视图的摄像机
稍微调整一下摄像机的角度,使之能够从正面视角俯瞰我们刚才创建的地面对象(见图8-7)。
调整摄像机角度的方式如下:
(1)按住Alt键的同时拖动鼠标左键,摄像机将以地面为中心旋转。
(2)按住Alt和Ctrl键的同时拖动鼠标左键,摄像机则将平行移动。
(3)滚动鼠标滚轮,画面将向着场景深处前后移动。
图8-6 查看GameScene项
图8-7 调整摄像角度
6)创建方块和小球
(1)创建完地面后,接下来将创建代表玩家角色的小方块和球体游戏对象。
(2)在窗口顶部菜单中依次单击GameObject→3D Object→Cube和GameObject→3D Object→Sphere按钮。
(3)将方块移动到左侧,小球移动到右侧(拖动对象上的XYZ轴进行移动)。
(4)精确移动:在层级视图中选中小方块(小球也是如此)(见图8-8)。把检视面板中Transform标签下的Position的X值由0改为-2(见图8-9)。
图8-8 选中小方块
图8-9 X值修改
7)运行游戏
再次保存项目文件(返回步骤4))。保存完成后,让我们把游戏运行起来。
(1)确认游戏视图标签页右上方的Maximize on Play图标处于按下状态,然后单击画面上方的播放按钮(位于工具栏中间的播放控件中最左边的三角形按钮),如图8-10所示。
图8-10 Maximize on Play图标状态
(2)启动游戏后,将自动切换到游戏视图。场景视图中配置好的3个游戏对象将显示出来。若希望终止游戏运行,再次单击播放按钮即可(见图8-11)。
图8-11 播放
提醒:游戏启动后,再次进行编辑前请务必先终止游戏运行。
8)摄像机的便捷功能
在层级视图选中Cube后,将鼠标移动到场景视图中,然后按下F键,可以看到摄像机将向Cube移动(见图8-12)。
图8-12 移动摄像机
切记:选中某游戏对象后再按下F键,场景视图中的摄像机将移动到该对象的正面。当需要查看某游戏对象时这个方法会很方便。
9)修改游戏对象的名字
由于Cube是玩家操作的角色,我们称它Player;Sphere是玩家要弹飞的球体,我们称它Ball;作为地面的Plane,我们称它Floor。
单击层级视图中的Cube,当背景变为蓝色后再次单击,名称文本将变为可编辑状态,把Cube改为Player后按下回车(见图8-13)。
10)模拟物理运动(添加Rigidbody组件)
为了实现让玩家角色跳起来的效果,需要为游戏对象添加物理运动组件。在层级视图选中Player,并在窗口顶部菜单中依次单击Component→Physics→Rigidbody按钮(见图8-14)。
图8-13 修改Cube为Player(https://www.chuimin.cn)
图8-14 添加物理运动组件
这样Rigidbody组件添加到了玩家角色中,可以在检视面板中看到Rigidbody。
再次运行游戏(步骤7)),这一次玩家角色将快速落下并在撞到地面时停止(见图8-15)。
图8-15 游戏视图
11)让玩家角色跳起来(添加游戏脚本)
(1)由于该脚本用于操作玩家角色,所以命名为Player。从项目视图的Create菜单中选择CScript,项目视图右侧的Assets栏中将生成一个名为NewBehaviourScript的脚本文件,刚创建完成时,将其名字改为Player(见图8-16)。
现在创建的脚本是一个空的脚本,即使运行也不会发生什么。为了能够将它运用在游戏中,必须做相应的编辑。
(2)选中Player脚本,单击检视面板上的Open按钮。这时Visual Studio 2017将会启动,Player.cs脚本被打开(我将Mono Develop编辑器换成了VS2017),如图8-17所示。
注:在项目视图中双击脚本项也能够启动编辑器(在这里是VS2017)。
可以看到,创建好的脚本文件已经包含了若干行代码(见图8-18)。这些代码是每个脚本都必需的,为了省去每次输入的麻烦,所以预先设置在文件中了。
图8-16 编辑空脚本
图8-17 启动编辑器
图8-18 创建的脚本
图8-19 脚本代码
(3)脚本编辑。
①脚本的开头有一行代码,确认public class后紧跟着的类名为Player(Unity规定C脚本中类名必需和文件夹名相同),如图8-19所示。
②代码编辑脚本。新增一个jump_speed数据成员,重写Update方法:
③保存代码。在VS2017中编辑完代码后,必须对其加以保存才能使其改动生效。单击VS2017标题栏上的文件→保存按钮,保存完后退出VS2017(见图8-20)。
④回到Unity编辑器中,也进行保存(步骤4))。
⑤把新建的类组件添加到Player游戏对象上(见图8-21)。从项目视图中将Player脚本拖拽到层级视图中的Player对象上。这样就可以把Player脚本组件添加到玩家角色,此时在检视面板中也应该能看见Player标签。
⑥再次启动游戏。单击鼠标左键后,玩家角色将“嘭”地弹起来(运行前记得再保存一次项目文件),如图8-22所示。
12)修改游戏对象的颜色(创建材质)
(1)创建材质。
①在项目视图中依次单击Create→Material按钮,创建一个New Material的项。和脚本一样,把它的名字改为Player Material(见图8-23)。
图8-20 标题栏
②改变颜色。在检视面板中单击白色矩形,将打开标题为Color的色彩选择窗口(见图8-24)。
色彩选择窗口内的右侧有调色板,单击其中的红色区域,刚才的白色矩形将立即显示为选中的颜色(见图8-25)。选择完颜色后关闭选择窗口。
图8-21 Player标签查看
图8-22 游戏启动
图8-23 创建材质
图8-24 改变颜色
图8-25 选择颜色
(2)在项目视图中将Player Material拖拽到层级视图中的Player上。这相当于把Player Material分配给Player,场景视图中的游戏对象Player就变成红色了(见图8-26)。
图8-26 材质颜色设置为红色
(3)采用同样的方式创建绿色的Ball Material和蓝色的Floor Material,并分别将他们分配给Ball和Floor对象(见图8-27)。13)调整游戏画面的尺寸(调整播放器设置)
图8-27 创建绿色Ball Material和蓝色的Floor Material
图8-28 Free Aspect下拉菜单
(1)在Game标签左下方有Free Aspect文字,单击该处将出现下拉菜单,选中位于最下方的“+”菜单项,将打开一个标题为Add的小窗口(见图8-28)。
(2)在Width&Height文字右侧的两个文本输入框中分别填入640和480,确认无误后按下OK按钮(见图8-29)。
(3)关闭Add窗口后可以在下拉菜单中看见新增了640×480项,同时该项左侧显示有被选中的标记(见图8-30)。目前为止,我们已成功将游戏画面尺寸设置为640像素×480像素了。
(4)运行游戏(运行前记得先保存),如图8-31所示。
图8-29 Width&Height设置
图8-30 640×480项选中效果
图8-31 游戏运行
相关文章
实例化预设使用上面章节中描述的创建预设的方法。一旦你创建了预设,你就可以简单快速地得到一个预设的拷贝,称为实例。为了创建任何预设的一个实例,从工程视图中拖动一个预设到层次或场景视图中。添加组件和脚本当你选中任何预设或物体时,你可以通过使用组件来向其中添加一些额外的功能。脚本也是组件的一种类型。缺省情况下脚本也包含在组件菜单中。你可以通过Components→Camera-Control来找到它。......
2025-09-30
尝试添加一个刚体到刚创建的物体上。选择该物体并从菜单中选择Component→physics→Rigidbody。它们使用一个粒子发射器,粒子动画和粒子渲染器来创建一组移动的粒子。音频剪辑是一个引用属性。移除组件如果你想移除一个组件,在检视面板的头部使用option-或右击然后选择移除组件。例如,如果你想访问变换组件的变换功能,你只需要使用transform.Translate()或gameObject.transform.Translate()。使用GetComponent()有许多组件不能成为一个游戏物体类的成员。通过调用GetComponent并存储一个引用到结果中。......
2025-09-30
本小节将介绍的是Unity数据库与存储的相关内容。XML的设计宗旨是传输数据,而非显示数据。7)Xml数据生成步骤在Unity引擎中如何生成本地XML数据?8)Xml数据生成示例9)Xml序列化序列化是将对象状态转换为可保持或传输的格式的过程。12)什么是SQLite①SQLite是一款轻型的数据库。语法:SELECT列名称FROM表名称13)Unity当中使用SQLite导入mono.data.sqlite.dll到Assets文件夹代码添加库:using Mono.Data.Sqlite;使用SQLiteConnection对象,进行数据库连接,此操作可以创建空的数据库。关闭数据库连接,释放资源。…......
2025-09-30
图3-2光子反射过程图3-3前向光线追踪现在从计算机图形的角度来看待这种情况。在这种情况下,发射的光子将撞击图形平面上许多像素的一个,并将该点的亮度增加到大于零的值。这种技术称为前向光线追踪,因为我们是沿着光子从光源向观察者前进的路径。此外,我们也不能保证物体的表面被光子完全覆盖,这是这项技术的主要缺点。另外,正如我们将看到的,射线追踪器中最昂贵的任务是找到射线几何交点。......
2025-09-30
硬件层在渲染流水线中最为复杂,也最为重要。图2-2固定渲染流水线的几个阶段图2-3可编程渲染流水线硬件层对比上面的两个图我们发现,在可编程渲染流水线中,固定渲染流水线中的顶点变换与片段纹理映射和着色被分离出来,作为可编程顶点处理器与可编程片段处理器。裁剪这部分不可见物体的过程称为视域体裁剪。视域体是一个3D的梯形,我们要在3D的空间里对顶点进行剔除,是一件非常难以实现的事,所以才将顶点变换到投影平面上。......
2025-09-30
在光学中,反射和折射是众所周知的现象。有一个方程式精确地计算了每个参数应该如何混合,这个方程称为菲涅耳方程。折射对光线有轻微弯曲的作用。这个过程是让物体在透视时或在不同折射率的物体上出现偏移的原因。3)应用菲涅耳方程我们需要玻璃球的折射率、主光线的角度,以及击中点的法线。使用点积、菲涅耳方程返回两个混合值。出于这个原因,必须设置一个任意的限制值,从而防止光线相互作用导致的无限递归。......
2025-09-30
Unity是一个非常流行和强大的游戏引擎,它支持众多的平台和设备。图7-75Game视图效果注意:对于Unity 2D游戏,Unity编辑器会自动处于2D模式。图7-77将playership精灵图片拖入场景视图在结构视图中,单击Unity为你创建的playership游戏对象,在检视器中查看它的属性。通过Unity的2D精灵表单编辑器,能够轻易管理这些精灵表单。......
2025-09-30
80%~90%的渲染时间花费在计算光线和物体交点上。基本的光线追踪算法只能得到尖锐的阴影。2)解决方案性能。③限制交点检测的数目。快速判断光线是否和一组物体相交。确定最大的递归层数。一个阈值用来确定后续光线由于对像素点贡献太小而不会被追踪。图3-16每个亚像素发射一条光线②自适应抗锯齿。阴影光线颜色的平均值决定该交点最终的颜色值。图3-18随机取样图3-19区域光图3-20蒙特·卡罗光线追踪全局光照。......
2025-09-30
相关推荐