unity 2d 使用全新输入系统 实现人物移动功能
时间: 2024-04-29 17:23:59 浏览: 90
unity2d移动跳跃及攻击
首先,在Unity中创建一个空场景,并创建一个2D人物模型。然后,我们需要使用全新的输入系统来实现移动功能。在Unity中打开“Package Manager”,找到“Input System”,并下载安装。
接下来,在“Project Settings”中启用新的输入系统。选择“Player”,然后在“Other Settings”中将“Active Input Handling”设置为“Input System”。
接下来,我们需要为人物创建一个“CharacterController”组件。选择人物模型,在“Inspector”面板中添加该组件。然后,我们需要编写一个简单的脚本来控制人物的移动。
```csharp
using UnityEngine;
using UnityEngine.InputSystem;
public class PlayerMovement : MonoBehaviour
{
[SerializeField] private float speed = 5f;
private Vector2 moveDir;
private CharacterController controller;
private void Start()
{
controller = GetComponent<CharacterController>();
}
private void Update()
{
Vector3 move = new Vector3(moveDir.x, 0, moveDir.y);
controller.Move(move * speed * Time.deltaTime);
}
public void OnMove(InputValue value)
{
moveDir = value.Get<Vector2>();
}
}
```
这个脚本通过监听输入系统的移动事件来控制人物的移动。我们将移动方向存储在一个向量变量中,并在Update()方法中使用CharacterController组件来移动人物。
最后,我们需要将这个脚本挂载到人物模型上,并将其绑定到输入系统的移动事件。选择人物模型,在“Inspector”面板中将该脚本拖到“Add Component”上。然后,在“Inspector”面板中选择“Add Component”下的“New Script”并命名为“PlayerMovement”。
在“Inspector”面板中找到“PlayerMovement”脚本,并展开“Input Actions”。将“Move”事件拖到“OnMove”方法上。
现在,我们可以运行场景并使用键盘或手柄来控制人物的移动了。
阅读全文