unity2d移动按键代码
时间: 2024-11-17 15:28:35 浏览: 2
Unity 2D制作的海滩僵尸小游戏
在Unity2D中,控制角色移动通常涉及到键盘输入管理。以下是一个基本的代码示例,展示了如何处理WASD键用于左右移动以及空格键用于跳跃:
```csharp
using UnityEngine;
using System.Collections;
public class PlayerController : MonoBehaviour
{
public float moveSpeed = 5f; // 移动速度
private Rigidbody2D rb; // Rigidbody2D组件用于物理操作
void Start()
{
rb = GetComponent<Rigidbody2D>();
}
void Update()
{
// 接收键盘输入
float horizontalInput = Input.GetAxis("Horizontal"); // -1, 0, 1分别对应左移、静止和右移
float verticalInput = Input.GetAxis("Vertical");
// 根据输入调整移动方向
Vector2 movement = new Vector2(horizontalInput, verticalInput);
// 使用Rigidbody2D的MovePosition方法实时移动
if (Mathf.Abs(horizontalInput) > 0)
rb.MovePosition(transform.position + movement * Time.deltaTime * moveSpeed);
// 跳跃逻辑
if (Input.GetKeyDown(KeyCode.Space) && isGrounded)
{
rb.AddForce(Vector2.up * jumpForce, ForceMode2D.Impulse); // 假设jumpForce是跳跃力
isGrounded = false;
}
// 检查是否撞到地面
isGrounded = Physics2D.Raycast(transform.position, -Vector2.up, groundCheckDistance);
}
bool isGrounded = true; // 假设groundCheckDistance是检测碰撞距离的变量
}
```
在这个例子中,`Update()`函数会持续运行,检查玩家按下哪些按键,并相应地改变角色的位置。`isGrounded`变量用于检测角色是否触碰到了地面,以便正确应用跳跃。
阅读全文