Не удается преобразовать float в UnityEngine.Vector2 - PullRequest
0 голосов
/ 22 июня 2019

Я пытаюсь сделать сценарий движения игрока (в воде), но я не понимаю, как работает добавление сил. Я хочу, чтобы мой игрок свободно перемещался в окружающей среде, как будто нет гравитации, и я хочу, чтобы мой игрок двигался медленнее вверх, чем вниз.

Вот мой код:


public class PlayerMovementWater : MonoBehaviour
{

    public Rigidbody2D rb2;
    public int movementhorizontal = 10;
    public int movementverticalup = 5;
    public int movementverticaldown = 13;

    void FixedUpdate()
    {
        float xdirection = Input.GetAxisRaw("Horizontal");
        float ydirection = Input.GetAxisRaw("Vertical");

        if (xdirection == -1)
        {
            rb2.AddForce(-movementhorizontal * Time.deltaTime, 0f);
        }

        else if (xdirection == 1)
        {
            rb2.AddForce(movementhorizontal * Time.deltaTime; 0f);
        }

        if (ydirection == -1)
        {
            rb2.AddForce(0f, -movementverticaldown * Time.deltaTime);
        }

        else if (ydirection == -1)
        {
            rb2.AddForce(0f, movementverticalup * Time.deltaTime);
        }
    }
}`


1 Ответ

0 голосов
/ 22 июня 2019

Вам нужно создать вектор для использования в AddForce вместо передачи 2 параметров.

Например:

rb2.AddForce(new Vector2(-movementhorizontal * Time.deltaTime, 0f));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...