Единство 2D лазания со спрайтом - PullRequest
0 голосов
/ 02 ноября 2018

Хорошо, я начинаю становиться лучше. Я пытаюсь подняться

мой код распознает, когда я нахожусь у стены, и может заставить его карабкаться, но я делаю это, отключая шкалу гравитации или, вернее, устанавливая ее на 0, когда на стене верно

и затем, когда он выключен, возвращает его к исходному значению ....

это не похоже на правду ...

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

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

вот мои 3 функции

private void OnCollisionEnter2D(Collision2D col) {

    if (col.gameObject.tag == "climbable") {
        is_on_wall = true;
        currentWall = col.gameObject.transform;
        currentWallCollider = col.collider;
    }
}


private bool found_wall() {

    if (currentWall) {
        if (Physics2D.Distance (currentWallCollider, heroCollider).distance < 10) {
            rb.gravityScale = 0;
            return true;
        } else {
            rb.gravityScale = 25;
        }
    }
    return false;
}

private void climb()  {
    if (vertical > 0.5f) {
        transform.Translate (0, 1f, 0);
    } else if (vertical < -0.5f) {
        transform.Translate (0, -1f, 0);
    } else {
        transform.Translate (0, 0, 0);
    }
}


private void FixedUpdate() {

    if (can_jump()) {
        rb.AddForce (new Vector2 (0, jumpHeight));
    }

    if (found_wall ()) {
        climb ();
    }
}

и они вызываются в исправленном обновлении

помогите пожалуйста, не запутайте меня

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