В моей игре с объединением2D запускается в устройстве, поэтому скорость игрока не равна нулю при столкновении с землей, и я использую функцию 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;
}
}
Итак, в чем проблема? –
Игрок перемещается по земле, когда умирает – Chetan
Хорошо, но здесь нет кода движения, и вы должны искать проблему. В 'die()' вы просто устанавливаете скорость на [0,0], но какой-то код все равно изменит скорость. Я могу рассказать вам больше, если вы разместите часть кода, ответственного за движение –