unity2d символ y позиция равна птица y позиция - PullRequest
0 голосов
/ 07 февраля 2019

Я хочу, чтобы птица дала монету моего персонажа, если позиция символа y равна позиции птицы y Я сделал этот код, но он не работает

    public Transform target;
public GameObject Coin;

void Update () {
    transform.Translate (Vector2.left * 10f * Time.deltaTime);
    if (transform.position.y == target.position.y) {
        Instantiate (Coin, transform.position, Quaternion.identity);
    }

}

Ответы [ 2 ]

0 голосов
/ 07 февраля 2019

ответ ставится х, а не этот код ответить на вопрос

void Update () {
        transform.Translate (Vector2.left * 10f * Time.deltaTime);
        if (transform.position.x <= target.position.x&&coin==false) {
            Instantiate (EvilEgg, transform.position, Quaternion.identity);
            coin=true;
                    }

        }
0 голосов
/ 07 февраля 2019

Вы сами ответили в комментариях.Персонаж никогда не будет точно таким же y-pos, как птица, так что вам нужно проверить, находится ли персонаж над птицей.Попробуйте это:

public Transform target;
public GameObject Coin;
private bool _birdGaveCoin = false;

void Update()
{
    transform.Translate(Vector2.left * 10f * Time.deltaTime);
    if (transform.position.y <= target.position.y && !_birdGaveCoin)
    {
        Instantiate(Coin, transform.position, Quaternion.identity);
        _birdGaveCoin = !_birdGaveCoin;
    }
}

Итак, чтобы обернуть это: поплавки безумно точны.Поэтому может случиться так, что один кадр вашего персонажа находится на 3.99999f, а птица - на 4.00000f, а следующий кадр - на 4.00001f, так что технически это не то же самое.

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