プレイヤーがベース/グラウンドから落ちた場合、プレイヤーを最も近いチェックポイントでリスポーンさせる2Dプラットホーマーゲームを作成しています。ただし、プレイヤーが地面から落ちてからリスポーンするまでに遅延が必要です。これは、この目標を達成するための私のコードのセクションです。
private void OnTriggerEnter2D(Collider2D collision)
{
Debug.Log(collision.tag);
if (collision.tag.Equals("Kill"))
{
StartCoroutine("Respawn");
}
else if(collision.tag.Equals("Checkpoint"))
{
Animator flag = collision.GetComponent<Animator>();
if (!flag.GetBool("hasCrossed"))
{
flagCounter++;
flag.SetBool("hasCrossed", true);
checkpoint = collision.gameObject.transform.position;
}
}
}
IEnumerator Respawn()
{
yield return new WaitForSeconds(respawnDelay);
transform.position = checkpoint;
}
これは、1秒または2秒のような小さなリスポーン遅延に対して正常に機能します。しかし、遅延を5秒に増やすと、最も近いチェックポイントに現れたプレーヤーはすぐに消えてしまい、かなりの数の繰り返しの後、プレーヤーが再び現れます。
どうすれば修正できますか?
3
アニメーションのスクリーンショットが大好き!
—
コネラック