Unity3d unity2d字符y位置等于bird y位置
我想让鸟给我的角色硬币,如果角色的y位置等于鸟的y位置,我做了这个代码,但它不起作用Unity3d unity2d字符y位置等于bird y位置,unity3d,position,Unity3d,Position,我想让鸟给我的角色硬币,如果角色的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
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);
}
}
你已经在评论中自己回答了。角色的y-pos与鸟的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;
}
}
公共转型目标;
公共游戏机硬币;
private bool_birdGaveCoin=假;
无效更新()
{
transform.Translate(Vector2.left*10f*Time.deltaTime);
如果(transform.position.y答案是放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;
}
}
void更新(){
transform.Translate(Vector2.left*10f*Time.deltaTime);
如果(transform.position.x)是这样的话,这只鸟一直在左飞,一旦y-pos相同,你就会产生硬币。你能给我们一个你的场景的屏幕截图吗?是的,这正是我想要的want@bastingup网站不允许我放图片我不确定是否退出“==”操作员会做这个把戏。所以玩家也可以在鸟的上方?如果是这样,你可能想试试“>=”(如果玩家在鸟的上方),因为浮动非常精确,可能这种情况永远不会发生,因为玩家总是低于或高于0.0001f?那么你还需要一个私人布尔,检查硬币是否已经给过。现在你每秒给100枚硬币(取决于你的帧速率).一切都很好,但当字符y位置等于鸟y位置时,它不会给我任何硬币嘿,兄弟,看起来你的代码只有在我跳得更多时才起作用谢谢,兄弟,因为你我现在知道答案了答案是below@SHOWCASE在您的问题中,您明确要求使用y位置
,因此您应该接受该位置好男人,不必细说,他自己就知道了