Menu
CoddyTech

コインが戻ってくる

CoddyのUnityジャーニー「物理演算とゲームプレイ」セクションの一部。レッスン 30/63。

challenge icon

チャレンジ

中級

収集したコインはrespawnDelay秒後に戻ってくるので、いつでも追いかけるものがあります。これは、1枚のコインのライフサイクル内で待機する処理、つまりコルーチンです。これまでの手順をすべて残したまま、Coinを変更しましょう。

  • public float respawnDelay = 3f;を追加します。
  • 非アクティブ化されたGameObjectはコルーチンを実行しないため、SetActive(false)を使うと、コインを戻す前にコルーチンが停止してしまいます。別の方法でコインを隠しましょう。コインが描画されないようにRendererをオフにし、再び収集できないようにColliderもオフにします。
  • 収集されたときに、コインを隠し、respawnDelay秒待ってから両方を再びオンにするコルーチンを開始します。スコアはこれまでどおり加算します。

再生を押し、コインを収集して戻ってくるのを確認したら、チェックを押します。

自分で試してみよう

using UnityEngine;

public class Coin : MonoBehaviour
{
    public int value = 1;

    void OnTriggerEnter(Collider other)
    {
        if (other.CompareTag("Player"))
        {
            other.GetComponent<Ball>().AddScore(value);
            gameObject.SetActive(false);
        }
    }
}

物理演算とゲームプレイのすべてのレッスン