现在我们来滚动游戏对象,首先我们来想象一下这个物体运动的样子:我们希望让滚珠在这个游戏区域中滚动,球始终在平面上而不会飞出这个区域。我们想让滚珠去收集那些能被收集的对象(黄色方块)。在碰到他们的时候就把他们收集起来,这些需要物理引擎。要使用物理引擎,就必须有一个刚性体组件附加上去。要附加一个刚性体组件,首先要选择我们需要附加组件的对象。在这个例子中我们将选择滚珠。

然后选择 Component -》 Physics -》 Rigidbody

Unity3d案例滚球游戏 用unity3d制作滚动小球_示例代码


或者是选择 Add Component -》 Physics -》 Rigidbody

Unity3d案例滚球游戏 用unity3d制作滚动小球_示例代码_02


这个时候我们就添加了一个刚性体到我们选择的对象上。

我们可以选择更好的组织管理Inspectors里面的菜单,点击部件列表右侧的小齿轮,选择 move down 或者 move up 来调整列表的排列,这样不会影响到游戏的表现但更好的设置这些可以维护好这个组织关系, 从而帮助我们提高开发速度。

Unity3d案例滚球游戏 用unity3d制作滚动小球_静态方法_03


请不要忘了,你还可以点击部件列表的标题栏来收缩和展开某个部件。当你点击它们时,就会在场景中显示对应的对象。

Unity3d案例滚球游戏 用unity3d制作滚动小球_示例代码_04


现在我们需要让滚珠在我们的控制下进行运动,我们会接收到来自键盘的输入来让滚珠朝着键盘输入的方向滚动。要显示这个需要利用到一个脚本并把他附加到这个游戏对象中去。


首先,让我们建立一个文件夹来存放css。在Poject 下的Create 菜单 选择 Folder,新建一个目录,将其命名为Scripts。

Unity3d案例滚球游戏 用unity3d制作滚动小球_示例代码_05

添加完毕后的结构是这样:

Unity3d案例滚球游戏 用unity3d制作滚动小球_Unity3d案例滚球游戏_06

下面我们新建一个C#脚本: 创建脚本我们有几种选择。

选择Assets -》 Create -》 C# Script

Unity3d案例滚球游戏 用unity3d制作滚动小球_静态方法_07

或者我们可以选择 Create 菜单里面的C# Script

Unity3d案例滚球游戏 用unity3d制作滚动小球_物理引擎_08

在这个示例中我们首先选中游戏对象,然后使用添加部件的按钮,new script

Unity3d案例滚球游戏 用unity3d制作滚动小球_静态方法_09

然后输入名称 PlayerController 选择语言为 C Sharp 点击Create and Add 按钮,这个时候就会创建出来一个脚本文件附加到我们选中的对象上。

Unity3d案例滚球游戏 用unity3d制作滚动小球_物理引擎_10

这个时候就会创建出来一个新的C#脚本在我们项目的根目录下,我们需要先把他移动到Scripts文件夹下,这样可以更好的管理我们的文件视图。


点击这个文件,我们可以看到这个文件的预览在Inspector栏,但这个预览区域的内容是不可以编辑的。

Unity3d案例滚球游戏 用unity3d制作滚动小球_物理引擎_11

让我们打开这个脚本,打开这个文件有多种方法。可以选择脚本上的小齿轮按钮,选择Edit Script

Unity3d案例滚球游戏 用unity3d制作滚动小球_Unity3d案例滚球游戏_12

也可以通过双击Project菜单里面的图标

Unity3d案例滚球游戏 用unity3d制作滚动小球_Unity3d案例滚球游戏_13


或者选中脚本后,通过Inspector菜单里面的Open 按钮来打开它:

Unity3d案例滚球游戏 用unity3d制作滚动小球_静态方法_14

打开脚本后,首先选中示例代码将他们删除:

Unity3d案例滚球游戏 用unity3d制作滚动小球_Unity3d案例滚球游戏_15

下面让我们来思考一下,你想让这个脚本干什么。首先我们应该检查各种接收到的输入,让后我们希望让这些指令应用到滚珠的每一帧,去让他滚动起来。

好了我们要检查这些输入,我们有两种方法:Update 和 FixedUpdate

Update会在每一帧执行前调用,这是我们游戏中最核心的。

FixedUpdate是在某些特定物理条件下运行的代码。这里是我们运行物理相关代码的地方。

我们会通过一个RigidBody来滚动弹珠,这是跟物理有关的,所以我们把我们的代码写到FixedUpdate里面。 我们需要写什么样的代码呢?

我们需要检查输入,我们首先在代码里面写入一个input。如果我们想知道有关input有哪些API可以使用有一个快捷的方式可以查询:

PC: Ctrl + ‘

MC:CMD + ’

(由于我使用上面的方法打开文档查询失败,我手动打开来unity的文档搜索了input效果也是一样的:

http://docs.unity3d.com/ScriptReference/30_search.html?q=input)

然后点击 input 链接,进入input类的文档页面,这里有关于这个类的描述

Unity3d案例滚球游戏 用unity3d制作滚动小球_示例代码_16

我们通过阅读页面上的信息来了解如何使用这个类型。在我们的例子中,我们支持所有的平台包括移动设备。在页面的描述下面,是一些静态变量和静态方法的介绍。

Unity3d案例滚球游戏 用unity3d制作滚动小球_示例代码_17

每一个静态变量都会有一个对应的描述来介绍这个变量的作用。

Unity3d案例滚球游戏 用unity3d制作滚动小球_静态方法_18


静态方法为我们做一些事情,在我们的例子中,我们会使用GetAxis,当我们找到这个方法的名字,点击它的链接就能进入到这个方法或者变量对应的介绍页面。

Unity3d案例滚球游戏 用unity3d制作滚动小球_静态方法_19

这里能看到方法的签名和方法的描述,以及教你如何使用的示例代码,有C#和javascript版本。我们使用C#作为这个项目的脚本语言。跟多关于InputManage的和Input.GetAxes我们会在以后的课程里面介绍。