Как мне исправить этот код 2D контроллера так, чтобы мой игровой объект мгновенно развивался со скоростью 100%? - PullRequest
1 голос
/ 02 июля 2019

По сути, я заставил свой объект в единстве передвигаться с помощью виртуального джойстика, но я не могу заставить его двигаться на 100% мгновенно, он сглаживается и максимальная скорость достигается только тогда, когда ручка достигает контура джойстика.Как убрать сглаживание?

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

public float runSpeed = 5f;
public Joystick joystick;
Rigidbody2D rigidbody2d;



// Start is called before the first frame update
void Start()
{
    rigidbody2d = GetComponent<Rigidbody2D>();
}

// Update is called once per frame
void Update()
{
    float horizontal = joystick.Horizontal;
    float vertical = joystick.Vertical;

    Vector2 move = new Vector2(horizontal, vertical);
    Vector2 position = rigidbody2d.position;

    if (joystick.Horizontal || joystick.Vertical >= .2f)
    {
        position = position + move * runSpeed * Time.deltaTime;
    }
    else if (joystick.Horizontal || joystick.Vertical <= -.2f)
    {
        position = position + move * -runSpeed * Time.deltaTime;
    }
    else
    {
        position = position + move * 0f * Time.deltaTime;
    }


    rigidbody2d.MovePosition(position);

Ошибка CS0019 Оператор '||'не может применяться к операндам типа 'float' и 'bool' Assembly-CSharp

Ответы [ 2 ]

1 голос
/ 02 июля 2019

Изменить это:

if (joystick.Horizontal || joystick.Vertical >= .2f)
{
    ...
}

Кому:

if (joystick.Horizontal >= value || joystick.Vertical >= value)
{
    ...
}
0 голосов
/ 02 июля 2019

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

Но в реальном мире движение следует первому закону Ньютона.поэтому каждый раз, когда вы пытаетесь изменить направление.Это зависит от последней скорости, потому что первый закон Ньютона.поэтому движение будет меняться медленно.

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