如果字符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);
}
}
答案 0 :(得分: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,所以从技术上讲,这是不一样的。
答案 1 :(得分: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;
}
}