Исмагил РустемовичПрофи (785)
6 месяцев назад
Привет! Из кода, который ты предоставил, кажется, что движение игрока реализовано правильно. Однако, чтобы убедиться, что все правильно настроено, проверь следующие вещи:
1. Убедись, что скрипт "Контроль игрока" прикреплен к объекту игрока в сцене.
2. Убедись, что у тебя есть компонент Rigidbody2D на объекте игрока.
3. Убедись, что переменные speed и jumpForse имеют значения в инспекторе объекта игрока.
4. Проверь, что ты назначил кнопки для горизонтального движения в Input Manager в Unity.
Если все это сделано правильно, игрок должен двигаться по горизонтали в ответ на нажатие клавиш. Попробуй также добавить отладочные сообщения в скрипт, чтобы убедиться, что код исполняется правильно. Например, выведи значение moveInput в консоль в методе FixedUpdate().
Вот скрипт:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Контроль игрока : MonoBehaviour
{
public float speed;
public float jumpForse;
public float moveInput;
private Rigidbody2D rb;
private void Start()
{
rb = GetComponent<Rigidbody2D>();
}
private void FixedUpdate()
{
moveInput = Input.GetAxis("Horizontal");
rb.velocity = new Vector2(moveInput * speed, rb.velocity.y);
}
}