0

在我在设备中运行的 unity2D 游戏中,当与地面碰撞时,玩家速度设置不为零,并且我使用 FixedUpdate() 函数进行玩家翻动,我的玩家翻动在静态位置。

void FixedUpdate ()
{
    // Jump
    if (isAlive)
    {
        if (didFlap) {
            didFlap = false;
            myRigidbody.velocity = new Vector2(0,bounceSpeed);
            anim.SetTrigger ("Flap");
        }
    }if (myRigidbody.velocity.y >= 0) {
        transform.rotation = Quaternion.Euler (0, 0, 0);
    } else {
        float angle = 0;
        angle = Mathf.Lerp (0,-45,-myRigidbody.velocity.y/7f);
        transform.rotation = Quaternion.Euler (0, 0, angle);
    }
}
void OnCollisionEnter2D(Collision2D target)
{
    if (target.gameObject.tag=="Ground")
    {
         die();
    }
}
void die()
{
    if (isAlive) 
    {
        isAlive  = false;
        anim.Play ("Died");
        myRigidbody.velocity = Vector2.zero;
    }
}
4

1 回答 1

0

因此,如果我理解这一点,您仍然可以在玩家在游戏中死亡后移动他们。

所以你需要做的是当玩家死亡时制作一个布尔值,当玩家死亡时为真

   void Update()
   {
        if (dead == false)
        {
            //player movement code hear 
        }
   }

这样,如果您死了,就无法移动,因为您的播放器控制代码不可访问。

我希望这有帮助。

于 2016-10-20T14:39:32.540 回答