【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 添加一个向上的力,使其跳跃。
相关推荐
daidaidaiyu41 分钟前
Spring IOC 源码学习 事务相关的 BeanDefinition 解析过程 (XML)
java·spring
陈言必行1 小时前
Unity 之 Addressables 加载失败:路径变量未替换导致的 404 错误分析与解决
unity·游戏引擎
鬼蛟2 小时前
Spring————事务
android·java·spring
西门吹-禅2 小时前
【sap fiori cds up error】
java·服务器·sap cap cds
敲代码的嘎仔3 小时前
Java后端面试——SSM框架面试题
java·面试·职场和发展·mybatis·ssm·springboot·八股
大傻^3 小时前
Spring AI Alibaba RAG实战:基于向量存储的检索增强生成
java·人工智能·spring
大傻^3 小时前
Spring AI Alibaba 快速入门:基于通义千问的AI应用开发环境搭建
java·人工智能·后端·spring·springai·springaialibaba
伯恩bourne3 小时前
Google Guava:Java 核心工具库的卓越之选
java·开发语言·guava
qq_170264753 小时前
unity出安卓年龄分级的arr包问题
android·unity·游戏引擎
小王不爱笑1323 小时前
Spring 基础核心
java