今天,我们将讨论在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中处理输入有了更好的理解。继续努力吧,祝你的游戏开发愉快