你好。 欢迎来到 Unity 中的本课程。 在这些课程中,您将学习如何使用输入来 在Unity中控制玩家。 从 Unity Hub 打开 Platformer 项目。 打开 1 级场景。 如果图块选项板仍然打开,您可以将其关闭。 让我们创建播放器预制件,然后学习如何控制它 使用默认的 Unity 输入。 在项目面板中,打开 Pixel Adventure 1 文件夹 资产文件夹。 打开资产。 主要人物。 和 然后打开虚拟人文件夹。 选择运行精灵。 您可以在检查器中看到这是一个动画条 精灵,32 像素高。 确认精灵模式设置为“多重”。 并将每单位像素设置为 32。 确保单击“应用”。 单击“运行”右侧的三角形。 您可以按顺序查看所有动画精灵。 让我们按住 Shift 键选择所有这些精灵。 单击第一个。 按住 Shift 键单击最后一个。 然后将此选择拖到层次结构中。 将弹出一个请求者。 转到您的资产。 您的主要资产文件夹。 动画。 我们将这个命名为“Run”。 现在选择运行。 在层次结构中,按 F2。 并将其重命名为 Player。 在检查器中,将排序图层更改为前景。 这个非常重要。 打开预制件文件夹。 将播放器拖进去。 图标变为蓝色。 现在我们为我们的播放器准备了一个预制件。 在场景面板中,将玩家移动到左侧。 在层次结构中选择玩家。 在场景面板中,按 W 进行移动。 然后单击 X 并将您的玩家移至左侧。 保存场景。 现在按播放。 播放器正在循环和运行运动,但没有继续 任何地方。 他也漂浮在地面之上。 我们移动该玩家以及启用的方式 碰撞检测,是通过使用Unity的2D物理系统。 别玩了。 选定球员后, 在检查器中,单击“添加组件”并选择“刚体” 2D。 这为玩家添加了物理效果,但我们还需要定义一个 玩家周围的碰撞区域。 再次单击“添加组件”。 并搜索 Box。 我们想要添加一个 Box Collider 2D。 确保仅添加 2D 组件。 右键单击场景面板。 然后点击F来框住你的玩家。 在检查器中,单击“编辑碰撞器”。 您将在玩家周围看到一个边界框。 单击框两侧的点以包围框 玩家。 单击“播放”,让我们看看会发生什么。 玩家现在因重力而下落,但正在穿过 地面。 我们需要在地面上添加一个特殊的碰撞器。 别玩了。 旋转打开网格。 选择前景。 在检查器中,单击“添加组件”并搜索“平铺”。 我们需要选择Tile Map Collider 2D,这是一个特殊的 对撞机的类型。 让我们再次开始播放吧。 现在玩家着陆并停留在地面上。 这是一个很好的开始。 现在我们需要向这个播放器添加一些代码,以便使用 键盘来控制其移动。 打开脚本文件夹。 右键单击并创建一个新的 C Sharp 脚本。 并将其命名为 PlayerControl。 永远记住立即命名。 检查脚本的名称是否与公共类相匹配 检查员。 选择层次结构中的玩家, 并将此脚本拖到播放器上。 如果检查器中没有足够的空间,您可以旋转 放下并折叠一些面板。 打开脚本。 在第一个大括号后单击光标, 然后按 Enter 键腾出一些空间。 因为这是一个基于物理的运动,所以我们需要定义一个 刚体并设置速度变量。 所以我要输入 private 刚体 2D,我们将命名为 这个变量RB。 再次按 Enter 为下一行腾出更多空间, 并输入公众持股量。 我们将这个变量命名为 moveSpeed, 我们将给它一个初始值 4。 不要忘记数字 4 后面的字母 F,因为这是 浮点变量。 Public 允许我们从编辑器调整这个变量。 再次按 Enter 键添加一些空格。 单击启动方法内部, RB 类型是 等于 getComponent。 我们想要用括号获取组件, 支架位于您的键盘上。 如果你按下shift逗号, 我们将输入 2D 刚体,最后我们 要添加括号, 和一个分号。 这设置了我们的刚体变量名称 RB,以做出反应 我们添加到播放器的刚体组件。 这允许我们向 RB 变量发送命令,例如 速度,这将使我们的玩家以不同的方式移动 方向。 保存代码,并最小化 Visual Studio。 在我们继续播放器代码之前,我们需要了解 Unity 如何 将键盘按键映射为默认输入。 打开“编辑”、“项目设置”,在左栏中选择“输入管理器”。 在右侧,您将看到不同输入类型的轴列表。 Twirl 打开 Axes,可以输入类型,例如鼠标和键盘。 旋转打开“水平”,记下“水平”名称。它以大写 H 开头。 我们需要在代码中准确地输入它。再往下,您可以看到一个消极和积极的按钮。 负号按钮返回负 1 的值,正号按钮返回正 1 Left,表示键盘上的向左箭头,right 是向右箭头。 您也可以按 A 或 D 键执行相同的操作。 所以基本上,如果你按 A,水平值就会改变, D,为向左或向右箭头键。关闭面板,打开脚本文件夹。 双击Visual Studio的Player Control脚本,我们要添加一个特殊的更新方法 这与基于物理的运动效果更好。单击“Start”方法后面的行。 按 Enter 键创建一个房间,然后输入 Void, 固定更新。请注意,IntelliSense 会自动为您设置圆括号和大括号。 在大括号内,我们将输入 Float moveDirection,这是一个动态生成的变量。 equals、input.getAxisRaw、括号,我们需要引号,如果你还记得的话,Horizontal 拼写为大写H,我们需要正确拼写它,否则这将不起作用。 并且不要忘记你的分号。这会动态创建一个变量,我们将其命名为 moveDirection 包含来自水平输入的值,让我们按 Enter 键换行。 并输入 rb.velocity=new vector2、括号、moveDirection,这是我们的变量之一。 我们将其乘以 moveSpeed,放置一个逗号,并以 rb.velocity.y 结尾。 这是 Y 方向上的上下速度。 2D 游戏的速度是一个向量2, 表示 X 和 Y 方向的移动。玩家将根据正向或负向沿 X 方向行进 移动方向乘以移动速度。逗号后的第二个值是, Y 或向上和向下值,现在将保持为零。 保存脚本并最小化 Visual Studio。 玩关卡,现在如果您按 A 或 D 键或向左或向右箭头,您可以前后移动玩家。 对于游戏来说这是一个很好的速度,看起来我们正在取得一些进展。 保存场景。在下一课中,我们将学习如何 在 Unity 中安装新的输入系统。感谢您的观看。