【Unity基础】使用InputSystem实现物体跳跃

要在Unity中使用 InputSystem 实现小球按空格键跳起的效果,可以按照以下步骤进行:

1. 安装 InputSystem 包

首先,确保你已经安装了 Input System 包。你可以通过以下步骤安装:

  1. 打开 Unity 编辑器,点击菜单 Window -> Package Manager
  2. Package Manager 中,点击左上角的 + 按钮,选择 Add package from Unity Registry
  3. 在搜索框中输入 Input System,然后点击安装。

2. 启用 InputSystem

安装完成后,需要在 Unity 编辑器中启用 Input System

  1. 进入 Edit -> Project Settings
  2. Player 设置中,找到 Other Settings
  3. Active Input Handling 选项中,选择 BothInput System Package (New),然后重启 Unity。

3. 创建一个简单的脚本

接下来,创建一个脚本来处理小球的跳跃:

cs 复制代码
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

  1. 右键点击 Assets 目录下的任意位置,选择 Create -> Input Actions,创建一个新的 Input Action 文件,比如命名为 PlayerControls.
  2. 双击打开 PlayerControls,创建一个新的 Action Map(比如命名为 Player)。
  3. Player Map 下,添加一个新的 Action(比如命名为 Jump),将它的类型设置为 Button,并绑定到 Space 键。
  4. 保存并关闭 Input Action 编辑器。

5. 将 Input Action 和脚本关联

  1. 回到场景,将 BallController 脚本附加到小球对象上。
  2. BallController 组件中,点击 PlayerControls 输入框,选择你刚刚创建的 PlayerControls 输入文件。
  3. Jump Action 上绑定空格键。

6. 完成

现在你就可以运行游戏并按空格键让小球跳起来了!

解释:

  • 通过 InputSystem,你创建了一个 Action (Jump) 来检测空格键的按下。
  • 脚本中的 OnJump 方法会在按下空格键时触发,给小球的 Rigidbody 添加一个向上的力,使其跳跃。
相关推荐
梦之马23 分钟前
spring boot 2升级3 记录
java·spring boot·后端
yuren_xia1 小时前
Spring MVC中自定义日期类型格式转换器
java·spring·mvc
暴走约伯1 小时前
【虚幻5蓝图Editor Utility Widget:创建高效模型材质自动匹配和资产管理工具,从3DMax到Unreal和Unity引擎_系列第二篇】
unity·ue5·游戏引擎·虚幻·材质
GottdesKrieges2 小时前
OceanBase数据库磁盘空间管理
java·数据库·oceanbase
Themberfue3 小时前
Redis ⑦-set | Zset
java·开发语言·数据库·redis·sql·缓存
此木|西贝7 小时前
【设计模式】享元模式
java·设计模式·享元模式
李少兄8 小时前
解决Spring Boot多模块自动配置失效问题
java·spring boot·后端
bxlj_jcj8 小时前
JVM性能优化之年轻代参数设置
java·性能优化
八股文领域大手子8 小时前
深入理解缓存淘汰策略:LRU 与 LFU 算法详解及 Java 实现
java·数据库·算法·缓存·mybatis·哈希算法