Код Unity 3D C# для перемещения и прыжков игрока | Полный пример

Вот пример кода движения и прыжков игрока на 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для взаимодействия с движением и физикой. Игрок может перемещаться по горизонтали с помощью оси ввода «Горизонтально» и прыгать с помощью кнопки ввода «Прыжок».

Подводя итог, в этом коде используются следующие методы:

  1. Start(): инициализирует компонент Rigidbody2D.
  2. Update(): обрабатывает движения игрока и логику прыжков в каждом кадре.
  3. OnCollisionEnter2D(столкновение Collision2D): обнаруживает столкновения с землей для сброса состояния прыжка.