Это проблема с кодом или проблема с Unity? - PullRequest
0 голосов
/ 03 мая 2020

noob здесь.

В настоящее время я использую учебник, чтобы сделать свой первый маленький 2d платформер. С помощью сценария мой персонаж может двигаться влево и вправо. У меня проблема с получением спрайта для прыжка.

Ниже мой код:

using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using UnityEngine;

public class PlayerMovement : MonoBehaviour


{
    public CharacterController2D Controller;
    public float RunSpeed = 40f;
    bool Jump = false;
    float horizontalMove = 0f;

    // Update is called once per frame
    void Update()
    {
        horizontalMove = Input.GetAxisRaw("Horizontal") * RunSpeed;

        if (Input.GetButtonDown("Jump"))
        {
            UnityEngine.Debug.Log("This works");
            Jump = true;
        }

    }

    private void FixedUpdate()
    {
        Controller.Move(horizontalMove * Time.fixedDeltaTime, false, Jump);
        Jump = false;
    }
}

Строка отладки выполняется в консоли, когда код регистрирует мое нажатие клавиши пробела Однако с маленьким человечком на экране ничего не происходит.

Я надеюсь, что кто-то может помочь.

Большое спасибо,

Эллис

1 Ответ

0 голосов
/ 03 мая 2020

значение, которое вы используете в Controller.Move() для указания силы перехода, похоже, равно 0.

Если вы измените horizontalMove на переменную c, вы можете присвоить ей значение в редактор единиц или вы можете присвоить значение в сценарии.

Удачи.

РЕДАКТИРОВАТЬ: Извините, бессмертие правильно. Вы уже установили horizontalMove.

Input.GetAxisRaw может принимать значение -1,0 или 1. Таким образом, horizontalMove может принимать значение -40, 0 или 40. Поскольку вы умножаете в аргументах контроллера значения Time.deltaTime, а deltaTime часто составляет около 0,005 - ваш аргумент примерно (-) 0,2. Я не знаю, что ваш контроллер делает с этим значением, но я думаю, это причина, по которой вы ничего не видите. Значение только для малого

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...