2D游戏开发教程

Unity 2D游戏开发教程之摄像头追踪功能

冷暖自知 提交于 2019-12-10 07:27:45
Unity 2D游戏开发教程之摄像头追踪功能 上一章,我们创建了一个简单的 2D 游戏。此游戏中的精灵有 3 个状态: idle 、 left 和 right 。这看起来确实很酷!但是仅有的 3 个状态却限制了精灵的能力,以及游戏逻辑的想象空间。看来有必要让精灵拥有更多的状态,而这就是本章要讲解的主要内容。 摄像头追踪功能 游戏里的精灵可以在游戏场景中任意移动,这没什么问题,可是这就导致了一个问题,就是精灵可能移动到我们的视野之外,或者说游戏视图之外。为了解决这个问题,很多游戏都采用了“摄像头追踪”的方法,使得摄像头的位置会随着精灵的移动而移动。例如,《超级玛丽》中,精灵始终处于视图中心的位置,如图 2-1 所示。 图 2-1 《超级玛丽》中,精灵始终位于游戏视图的中心 要为我们开发的游戏添加“摄像头追踪”的功能,就需要使用脚本编写这样一种逻辑。在 Project 视图的 Scripts 文件夹里,新建一个 C# 脚本,命名为 CameraController ,为此脚本添加下面的代码: 01 using UnityEngine; 02 using System.Collections; 03 04 public class CameraController : MonoBehaviour 05 { 06 // 公有属性 07 // 表示精灵当前的动画状态 08 public

Unity 2D游戏开发教程之游戏中精灵的跳跃状态

我们两清 提交于 2019-12-10 07:16:19
Unity 2D游戏开发教程之游戏中精灵的跳跃状态 精灵的跳跃状态 为了让游戏中的精灵有更大的活动范围,上一节为游戏场景添加了多个地面,于是精灵可以从高的地面移动到低的地面处,如图 2-14 所示。但是却无法从低的地面移动到高的地面,因为当前的游戏精灵只能左右移动,即 left 和 right 。为了解决这个问题,本节就来为精灵添加跳跃状态。 图 2-14 精灵从一个地面移动到另一个地面 ( 1 ) 如果要为精灵添加跳跃状态,即 jump ,就不得不再引入其它状态: q landing :用于表示精灵接触到地面的这种状态。为了阻止精灵在跳跃到空中的时候再次跳跃,就需要在精灵做跳跃动作之前,确认其接触到了地面。 提示: 有些游戏允许精灵在空中的时候再跳跃一次,也就是所谓的二级跳。例如,《天天酷跑》中,精灵就需要有二级跳的能力,因为有些场景光是跳跃一次无法跳过悬崖,或者吃到金币,如图 2-15 所示。 图 2-15 《天天酷跑》中,需要连续跳跃来越过断崖的精灵 q falling :用于表示精灵在空中的状态,处于此种状态下的精灵只可能过渡到 landing 和 kill 状态,也就是说精灵在空中的时候,无法产生其它动作行为,如 left 和 right 。 ( 2 ) 为脚本 PlayerStateController 中定义的动画状态枚举类型添加 3 种新的状态: jump 、

​Unity 2D游戏开发教程之2D游戏的运行效果

感情迁移 提交于 2019-12-10 06:37:08
Unity 2D游戏开发教程之2D游戏的运行效果 2D 游戏的运行效果 本章前前后后使用了很多节的篇幅,到底实现了怎样的一个游戏运行效果呢?或者说,游戏中的精灵会不会如我们所想的那样运行呢?关于这些疑问,会在本节集中揭晓。 ( 1 )单击 Unity 上方,工具栏里的播放按钮,开始运行当前的游戏,默认精灵当前进入的是 Idle 动画状态,如图 1-34 所示。 图 1-34 Idle 状态 ( 2 )当读者按下键盘上的左、右方向键,或者 A 、 D 键的时候,精灵会进入 Walking 动画状态,并且会向左或者向右移动,如图 1-35 所示。 图 1-35 Walking 状态,左移和右移 ( 3 )当精灵移动到“地面”之外的时候,会发生“下落”,如图 1-36 所示。 图 1-36 移动到“地面”之外,发生“下落” 提示:如果觉得精灵的移动速度太慢,可以修改 Player 对象上 Player State Listener 组件里 Player Walk Speed 属性的值,如图 1-37 所示,默认的值是 3 。这个值越大,精灵的移动速度越快。如果觉得精灵的动画播放太慢,可以在 Animation 视图里设置指定动画的采样率,如图 1-38 所示。它的值越大,动画的播放速度越快。这两点在本章的前面有过说明,但是在这里决定还是要提醒下读者。 图 1-37 修改 Player