写一段Unity 2d平台 移动条约代码
时间: 2024-06-09 17:08:20 浏览: 172
以下是一个简单的Unity 2D平台移动条约代码示例:
```csharp
public class PlayerController : MonoBehaviour
{
public float moveSpeed = 5f;
public float jumpForce = 10f;
private bool isGrounded;
private Rigidbody2D rb;
void Start()
{
rb = GetComponent<Rigidbody2D>();
}
void Update()
{
float horizontalInput = Input.GetAxis("Horizontal");
rb.velocity = new Vector2(horizontalInput * moveSpeed, rb.velocity.y);
if (Input.GetButtonDown("Jump") && isGrounded)
{
rb.AddForce(Vector2.up * jumpForce, ForceMode2D.Impulse);
isGrounded = false;
}
}
void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.CompareTag("Ground"))
{
isGrounded = true;
}
}
}
```
这段代码实现了基本的平台移动和跳跃功能,其中 `moveSpeed` 控制移动速度,`jumpForce` 控制跳跃力度。`Update` 函数中通过 `Input.GetAxis` 获取水平输入,将其乘以移动速度得到水平速度,然后通过 `Rigidbody2D.velocity` 来控制对象的移动。如果玩家按下跳跃键并且当前处于地面上,就会添加一个向上的冲量,然后将 `isGrounded` 标志设置为 `false`。在 `OnCollisionEnter2D` 函数中,如果玩家碰到了地面,就将 `isGrounded` 标志设置为 `true`。
阅读全文