< Return to Video

Unity 5 - Roll a Ball game - 2 of 8: Moving the Player - Unity Official Tutorials

  • 0:01 - 0:04
    现在我们要移动玩家这个对象
  • 0:04 - 0:06
    在此之前让我们想一想我们想要玩家
  • 0:06 - 0:08
    有什么样的表现。
  • 0:08 - 0:10
    我们想要这个圆球在游戏区域内滚动
  • 0:10 - 0:12
    撞墙,不能离开地面
  • 0:12 - 0:14
    也不能飞到空中。
  • 0:15 - 0:17
    我们想让它和可收集的物品发生碰撞
  • 0:17 - 0:19
    然后收集它们。
  • 0:19 - 0:21
    这就需要物理属性。
  • 0:21 - 0:23
    如果想要利用物理属性这个游戏对象就需要
  • 0:23 - 0:26
    附加一个刚体(Rigidbody)组件。
  • 0:26 - 0:28
    为了添加一个新的组件我们必须首先
  • 0:28 - 0:30
    选择想要添加组件的游戏对象
  • 0:30 - 0:32
    在这里我们将要选择
  • 0:32 - 0:34
    玩家这个游戏对象。
  • 0:34 - 0:37
    然后我们可以选择组件(Component)菜单
  • 0:37 - 0:39
    选择物理 - 刚体(Rigid Body)
  • 0:39 - 0:41
    这样我们就可以把这个组件附加到我们选择的
  • 0:41 - 0:43
    游戏对象上。
  • 0:44 - 0:46
    或者,你可以使用Inspector中的 “添加组件” 按钮
  • 0:46 - 0:49
    选择“物理 - 刚体”
  • 0:50 - 0:52
    以上任意一种方法都可以添加刚体
  • 0:52 - 0:54
    组件到选定的游戏对象上。
  • 0:55 - 0:57
    我们也可以重新排列
  • 0:57 - 0:59
    游戏对象中组件的顺序
  • 0:59 - 1:02
    利用右上角的
  • 1:02 - 1:04
    上下文敏感设置菜单。
  • 1:04 - 1:07
    这样做不会对游戏有任何影响。
  • 1:07 - 1:10
    反之,组件顺序一致
  • 1:10 - 1:13
    会加快我们的开发速度
  • 1:13 - 1:15
    因为可以保持项目的结构有序。
  • 1:15 - 1:17
  • 1:17 - 1:19
    不要忘记,你可以折叠或展开
  • 1:19 - 1:22
    组件视图,点击组件的标题栏就可以做到。
  • 1:22 - 1:24
    我们需要注意的是当我们这样做时
  • 1:24 - 1:26
    它会影响场景视图中相关联的
  • 1:26 - 1:29
    组件的gizmos。
  • 1:34 - 1:35
    现在我们要让这个玩家对象在我们的控制下
  • 1:35 - 1:37
    移动起来。
  • 1:37 - 1:39
    想要这样做我们需要获取玩家在键盘上的输入
  • 1:39 - 1:41
    并且需要把这个输入作为力应用到
  • 1:41 - 1:44
    玩家游戏对象
  • 1:44 - 1:46
    以便使场景中的球移动起来。
  • 1:47 - 1:49
    想要这样做需要利用附加到
  • 1:49 - 1:51
    玩家游戏对象的脚本。
  • 1:52 - 1:54
    首先,让我们在项目视图中新建一个文件夹
  • 1:54 - 1:56
    用来保存脚本资源。
  • 1:56 - 1:59
    在项目视图中点击 “新建”(Create)菜单
  • 1:59 - 2:01
    选择 “新建文件夹” (Create - Folder)
  • 2:02 - 2:04
    重命名为文件夹为 "Scripts"。
  • 2:05 - 2:08
    下一步,新建一个C#脚本。
  • 2:09 - 2:11
    在新建一个脚本时我们有以下选择
  • 2:11 - 2:13
    我们可以选择 ”Assets - Create"
  • 2:13 - 2:15
    来新建一个C#脚本。
  • 2:17 - 2:20
    我们也可以通过项目视图中的 “新建” (Create) 菜单
  • 2:22 - 2:24
    但更为便捷的方式是
  • 2:24 - 2:26
    选择玩家游戏对象
  • 2:26 - 2:29
    利用Inspector中的 “添加组件” (Add Component)按钮。
  • 2:30 - 2:33
    "添加组件“ (Add Component)菜单包括了
  • 2:33 - 2:34
    ”新建脚本“ (New Script)。
  • 2:34 - 2:36
    这样我们可以新建并附件脚本
  • 2:36 - 2:38
    一步完成。
  • 2:39 - 2:42
    首先让我们命名这个脚本为 ”PlayerController"。
  • 2:43 - 2:47
    我们可以选择脚本的语言,这里选择C#,
  • 2:47 - 2:50
    然后点击 “创建并添加” (Create and Add)。
  • 2:50 - 2:52
    或者,回车并确认我们的选择。
  • 2:52 - 2:55
  • 2:55 - 2:58
    Unity会新建,编译并把这个脚本附加到
  • 2:58 - 3:00
    我们选择的游戏对象上。
  • 3:00 - 3:03
    我们需要注意的是,通过这种方法创建的脚本
  • 3:03 - 3:06
    会把新建的脚本放在项目的根目录下
  • 3:06 - 3:08
    或者项目视图中的最上层。
  • 3:09 - 3:12
    我们需要把它们移动到“Scripts"目录中
  • 3:12 - 3:14
    这样就可以保持项目视图井然有序。
  • 3:15 - 3:18
    如果我们在项目视图中选择这个脚本
  • 3:18 - 3:21
    我们会在Inspector中预览它们的内容,
  • 3:21 - 3:23
    但是这些内容是无法编辑的。
  • 3:24 - 3:26
    让我们打开脚本,
  • 3:26 - 3:28
    我们也有多种方法办到。
  • 3:29 - 3:32
    当我们观察用到这个脚本的游戏对象时
  • 3:32 - 3:34
    我们可以利用上下文敏感菜单。
  • 3:36 - 3:39
    我们可以在项目视图是双击这个脚本
  • 3:39 - 3:41
    或者利用Inspector中的"打开”按钮,
  • 3:41 - 3:44
    当我们在项目视图中选中脚本时
  • 3:45 - 3:48
    这样我们就可以利用我们喜欢的脚本编辑器打开它了。
  • 3:48 - 3:50
    在开始之前让我们生成的脚本中的
  • 3:50 - 3:52
    示例代码删除。
  • 3:52 - 3:54
    接下来让我们想一想,
  • 3:54 - 3:56
    我们需要利用脚本做些什么呢?
  • 3:56 - 3:59
    我们想在每一帧中检查玩家输入
  • 3:59 - 4:02
    并且想把这些输入当作动作应用到
  • 4:02 - 4:05
    玩家游戏对象的每一帧中。
  • 4:05 - 4:08
    但我们在哪里检查和应用这些输入呢?
  • 4:08 - 4:10
    我们有两种选择。
  • 4:10 - 4:12
    Update和Fixed Update。
  • 4:13 - 4:16
    Update在渲染每一帧之前被调用
  • 4:16 - 4:18
    并且游戏中大多数的代码会保存在这个方法里。
  • 4:19 - 4:21
    Fixed Update只有在
  • 4:21 - 4:24
    执行物理运算之前被调用
  • 4:24 - 4:27
    我们的物理相关的代码会保存在这个方法里。
  • 4:28 - 4:30
    我们会移动球体通过施加力
  • 4:30 - 4:32
    到刚体上,这是物理相关的。
  • 4:32 - 4:35
    所以我们把代码写在Fixed Update中。
  • 4:37 - 4:39
    那我们具体要写哪些代码呢?
  • 4:40 - 4:41
    我们知道我们需要输入,
  • 4:41 - 4:43
    但如何找到更多呢?
  • 4:44 - 4:46
    在Monodevelop中有一个快捷键
  • 4:46 - 4:48
    用来搜索Unity API。
  • 4:48 - 4:51
    在Mac上是Command+'
  • 4:51 - 4:55
    在PC上是Ctrl+'。
  • 4:55 - 4:57
    选择你想搜索的项
  • 4:57 - 4:59
    在这里我们选择Input
  • 4:59 - 5:01
    同时按住Command或者Ctrl
  • 5:01 - 5:03
    和单引号'键。
  • 5:03 - 5:05
    这样就可以搜索出
  • 5:05 - 5:08
    关于Input的参考文档。
  • 5:09 - 5:11
    选择最上面的Input
  • 5:11 - 5:14
    选择Interface。
  • 5:16 - 5:18
    之后会打开 Input页面。
  • 5:19 - 5:21
    这是关于Input类的页面
  • 5:21 - 5:24
    我们利用这个类来读取输入管理器中的坐标设置,
  • 5:24 - 5:26
    并且可以访问多点触控
  • 5:26 - 5:28
    和加速度数据
  • 5:28 - 5:30
    在移动设备上。
  • 5:30 - 5:32
    我们可以阅读这个页面上的内容
  • 5:32 - 5:34
    来了解如何使用这个类。
  • 5:34 - 5:36
    对于我们来说,为了在所有平台上获取玩家的输入
  • 5:36 - 5:39
    包括移动设备。
  • 5:40 - 5:42
    在描述下面是
  • 5:42 - 5:45
    类中的变量和方法。
  • 5:45 - 5:47
    类变量用来保存
  • 5:47 - 5:50
    像触摸次数
  • 5:50 - 5:53
  • 5:54 - 5:56
  • 5:57 - 6:00
  • 6:01 - 6:04
  • 6:04 - 6:07
  • 6:08 - 6:10
  • 6:10 - 6:13
  • 6:13 - 6:15
  • 6:15 - 6:18
  • 6:18 - 6:20
  • 6:20 - 6:22
  • 6:23 - 6:25
  • 6:25 - 6:29
  • 6:30 - 6:32
  • 6:32 - 6:34
  • 6:35 - 6:39
  • 6:39 - 6:45
  • 6:46 - 6:51
  • 6:52 - 6:56
  • 6:56 - 7:00
  • 7:00 - 7:02
  • 7:02 - 7:06
  • 7:06 - 7:10
  • 7:10 - 7:12
  • 7:12 - 7:16
  • 7:16 - 7:19
  • 7:19 - 7:21
  • 7:21 - 7:24
  • 7:25 - 7:28
  • 7:28 - 7:31
  • 7:31 - 7:32
  • 7:32 - 7:34
  • 7:34 - 7:36
  • 7:37 - 7:40
  • 7:41 - 7:43
  • 7:44 - 7:46
  • 7:46 - 7:49
  • 7:49 - 7:51
  • 7:52 - 7:54
  • 7:54 - 7:56
  • 7:56 - 7:58
  • 7:58 - 8:00
  • 8:00 - 8:02
  • 8:03 - 8:05
  • 8:05 - 8:08
  • 8:09 - 8:12
  • 8:12 - 8:14
  • 8:14 - 8:16
  • 8:16 - 8:19
  • 8:19 - 8:21
  • 8:21 - 8:22
  • 8:23 - 8:25
  • 8:25 - 8:28
  • 8:28 - 8:30
  • 8:31 - 8:33
  • 8:33 - 8:37
  • 8:37 - 8:39
  • 8:39 - 8:44
  • 8:44 - 8:46
  • 8:46 - 8:50
  • 8:50 - 8:53
  • 8:53 - 8:56
  • 8:58 - 9:01
  • 9:02 - 9:05
  • 9:05 - 9:07
  • 9:08 - 9:12
  • 9:14 - 9:16
  • 9:16 - 9:19
  • 9:19 - 9:22
  • 9:23 - 9:25
  • 9:26 - 9:30
  • 9:31 - 9:35
  • 9:36 - 9:39
  • 9:39 - 9:42
  • 9:42 - 9:44
  • 9:45 - 9:49
  • 9:49 - 9:51
  • 9:51 - 9:53
  • 9:53 - 9:56
  • 9:56 - 9:58
  • 9:58 - 10:01
  • 10:02 - 10:05
  • 10:05 - 10:08
  • 10:08 - 10:12
  • 10:12 - 10:16
  • 10:16 - 10:19
  • 10:20 - 10:22
  • 10:23 - 10:27
  • 10:27 - 10:31
  • 10:31 - 10:34
  • 10:35 - 10:39
  • 10:39 - 10:41
  • 10:42 - 10:45
  • 10:45 - 10:47
  • 10:47 - 10:49
  • 10:49 - 10:53
  • 10:53 - 10:56
  • 10:57 - 11:02
  • 11:02 - 11:05
  • 11:05 - 11:08
  • 11:09 - 11:12
  • 11:13 - 11:19
  • 11:21 - 11:25
  • 11:25 - 11:29
  • 11:31 - 11:33
  • 11:33 - 11:37
  • 11:37 - 11:39
  • 11:39 - 11:42
  • 11:42 - 11:44
  • 11:45 - 11:48
  • 11:48 - 11:53
  • 11:55 - 11:58
  • 11:59 - 12:00
  • 12:01 - 12:05
  • 12:06 - 12:08
  • 12:08 - 12:12
  • 12:13 - 12:17
  • 12:17 - 12:19
  • 12:20 - 12:21
  • 12:22 - 12:24
  • 12:24 - 12:27
  • 12:27 - 12:30
  • 12:30 - 12:32
  • 12:32 - 12:34
  • 12:35 - 12:38
  • 12:41 - 12:44
  • 12:44 - 12:46
  • 12:46 - 12:50
  • 12:52 - 12:55
  • 12:56 - 12:59
  • 12:59 - 13:01
  • 13:01 - 13:03
  • 13:04 - 13:08
  • 13:08 - 13:10
  • 13:11 - 13:13
  • 13:13 - 13:16
  • 13:16 - 13:18
  • 13:19 - 13:22
  • 13:24 - 13:27
  • 13:27 - 13:30
  • 13:31 - 13:35
  • 13:35 - 13:38
  • 13:38 - 13:41
  • 13:41 - 13:44
  • 13:44 - 13:47
  • 13:47 - 13:49
  • 13:49 - 13:52
  • 13:53 - 13:55
  • 13:56 - 13:58
  • 13:58 - 14:01
  • 14:01 - 14:03
  • 14:03 - 14:05
  • 14:05 - 14:08
  • 14:08 - 14:10
  • 14:11 - 14:14
  • 14:14 - 14:17
  • 14:17 - 14:19
  • 14:19 - 14:22
  • 14:23 - 14:26
  • 14:26 - 14:29
  • 14:29 - 14:32
  • 14:33 - 14:35
  • 14:36 - 14:38
  • 14:39 - 14:42
  • 14:42 - 14:45
  • 14:46 - 14:48
  • 14:49 - 14:51
  • 14:52 - 14:54
  • 14:55 - 14:59
Title:
Unity 5 - Roll a Ball game - 2 of 8: Moving the Player - Unity Official Tutorials
Description:

more » « less
Video Language:
English
Duration:
15:00

Chinese, Simplified subtitles

Incomplete

Revisions