Вот пример кода движения и прыжков игрока на C# для Unity 3D:
using UnityEngine;
public class PlayerController : MonoBehaviour
{
public float movementSpeed = 5f;
public float jumpForce = 5f;
private bool isJumping = false;
private Rigidbody2D rb;
private void Start()
{
rb = GetComponent<Rigidbody2D>();
}
private void Update()
{
// Player movement
float movementX = Input.GetAxis("Horizontal");
rb.velocity = new Vector2(movementX * movementSpeed, rb.velocity.y);
// Player jumping
if (Input.GetButtonDown("Jump") && !isJumping)
{
rb.AddForce(new Vector2(0f, jumpForce), ForceMode2D.Impulse);
isJumping = true;
}
}
private void OnCollisionEnter2D(Collision2D collision)
{
// Reset jumping state when player lands on the ground
if (collision.gameObject.CompareTag("Ground"))
{
isJumping = false;
}
}
}
В этом коде у нас есть скрипт PlayerController
, прикрепленный к объекту игрока. Он использует компонент Rigidbody2D
для взаимодействия с движением и физикой. Игрок может перемещаться по горизонтали с помощью оси ввода «Горизонтально» и прыгать с помощью кнопки ввода «Прыжок».
Подводя итог, в этом коде используются следующие методы:
Start()
: инициализирует компонентRigidbody2D
.Update()
: обрабатывает движения игрока и логику прыжков в каждом кадре.OnCollisionEnter2D(столкновение Collision2D)
: обнаруживает столкновения с землей для сброса состояния прыжка.