unity2d字符y位置等于鸟y位置

问题描述 投票:0回答:2

我想那只给我的性格硬币,如果字符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);
    }

}
unity3d position
2个回答
1
投票

您在评论自己回答了这个问题。性格是绝不会在相同的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,所以它在技术上不一样的。


0
投票

答案是把X不是Y本代码回答问题

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;
                    }

        }
© www.soinside.com 2019 - 2024. All rights reserved.