【Unity基础】使用InputSystem实现物体跳跃
要在Unity中使用 InputSystem
实现小球按空格键跳起的效果,可以按照以下步骤进行:
1. 安装 InputSystem 包
首先,确保你已经安装了 Input System
包。你可以通过以下步骤安装:
- 打开 Unity 编辑器,点击菜单
Window
->Package Manager
。 - 在
Package Manager
中,点击左上角的+
按钮,选择Add package from Unity Registry
。 - 在搜索框中输入
Input System
,然后点击安装。
2. 启用 InputSystem
安装完成后,需要在 Unity 编辑器中启用 Input System
:
- 进入
Edit
->Project Settings
。 - 在
Player
设置中,找到Other Settings
。 - 在
Active Input Handling
选项中,选择Both
或Input System Package (New)
,然后重启 Unity。
3. 创建一个简单的脚本
接下来,创建一个脚本来处理小球的跳跃:
using UnityEngine;
using UnityEngine.InputSystem;
public class BallController : MonoBehaviour
{
public float jumpForce = 5f; // 跳跃力度
private Rigidbody rb; // 小球的刚体
// 按键事件
private void OnJump(InputValue value)
{
if (value.isPressed && Mathf.Abs(rb.velocity.y) < 0.01f) // 确保小球不在空中时才跳跃
{
rb.AddForce(Vector3.up * jumpForce, ForceMode.Impulse);
}
}
private void Start()
{
rb = GetComponent<Rigidbody>();
}
}
4. 设置 Input Action
- 右键点击
Assets
目录下的任意位置,选择Create
->Input Actions
,创建一个新的Input Action
文件,比如命名为PlayerControls
. - 双击打开
PlayerControls
,创建一个新的 Action Map(比如命名为Player
)。 - 在
Player
Map 下,添加一个新的 Action(比如命名为Jump
),将它的类型设置为Button
,并绑定到Space
键。 - 保存并关闭 Input Action 编辑器。
5. 将 Input Action 和脚本关联
- 回到场景,将
BallController
脚本附加到小球对象上。 - 在
BallController
组件中,点击PlayerControls
输入框,选择你刚刚创建的PlayerControls
输入文件。 - 在
Jump
Action 上绑定空格键。
6. 完成
现在你就可以运行游戏并按空格键让小球跳起来了!
解释:
- 通过
InputSystem
,你创建了一个 Action (Jump
) 来检测空格键的按下。 - 脚本中的
OnJump
方法会在按下空格键时触发,给小球的Rigidbody
添加一个向上的力,使其跳跃。