你如何在Unity中处理输入,使用新的输入系统有什么优势?

今天,我们将讨论在Unity中处理输入的问题。我们将讨论经典的输入管理器和闪亮的新输入系统,这样你就可以选择最适合你的游戏开发需要的那一个。准备好潜入了吗?让我们开始吧!

经典的输入管理器

Unity的经典输入管理器多年来一直是处理输入的首选解决方案。它使用简单,支持各种输入设备,如键盘、鼠标和游戏手柄。下面是一个使用输入管理器的基本例子:

想象一下,你正在开发一个2D平台游戏,你希望玩家使用方向键左右移动。你会像这样在Update()方法中检查输入:

void Update()
{
    float horizontalInput = Input.GetAxis("Horizontal");
    // Apply movement to the player based on horizontalInput
}

默认情况下,Unity有几个预定义的输入轴,比如 “Horizontal “和 “Vertical”,你可以在编辑>项目设置>输入管理器中自定义。

Unity的新输入系统

新的输入系统是一种更现代、更灵活的方法来处理Unity中的输入。它支持广泛的输入设备,允许更复杂的输入设置。下面是使用新输入系统的同一个2D平台游戏例子:

首先,你需要通过Window > Package Manager > Input System来安装Input System包。然后,在你的项目窗口中右键单击,选择 “创建”>”输入动作”,并定义你的输入动作,如 “移动”,从而创建一个输入动作资产。

在你的播放器脚本中,你会做这样的事情:

using UnityEngine.InputSystem;

public class PlayerController : MonoBehaviour
{
    private PlayerInput playerInput;
    private float horizontalInput;

    void Awake()
    {
        playerInput = new PlayerInput();
        playerInput.Player.Move.performed += context => horizontalInput = context.ReadValue<float>();
        playerInput.Player.Move.canceled += context => horizontalInput = 0;
    }

    void Update()
    {
        // Apply movement to the player based on horizontalInput
    }

    void OnEnable()
    {
        playerInput.Enable();
    }

    void OnDisable()
    {
        playerInput.Disable();
    }
}

那么,使用新的输入系统有什么好处?

  • 更好地支持广泛的输入设备,包括触摸屏、VR控制器等等。
  • 能够根据上下文处理输入,使其更容易在不同的输入方案之间切换或支持本地多人游戏。
  • 更精确的输入处理,因为它提供原始输入数据,并支持可定制的输入处理。

总之,虽然经典的输入管理器简单易用,但新的输入系统对输入处理提供了更多的灵活性和控制。根据你的游戏要求,你可能会发现新的输入系统更适合,特别是对于复杂的输入设置或针对多个平台的游戏。

现在你对使用经典的输入管理器和新的输入系统在Unity中处理输入有了更好的理解。继续努力吧,祝你的游戏开发愉快

spot_imgspot_img

Subscribe

Related articles

Unity中不同的基本变量类型,供初学者参考

在Unity中,你与C#编程语言中的各种变量类型一起工作。下面是你会遇到的一些常见的变量类型,以及在Unity中如何使用它们的例子

LEAVE A REPLY

Please enter your comment!
Please enter your name here