全ての敵にダメージを与える方法

Unityのコルーチンを使って一定時間ごとの処理を作成します。
Update()メソッドで、時間をカウントする方法もありますが、このサンプルでは、Update()メソッドに依存することはありません。

テストシーンの構成

サンプルコード

using System.Collections;
using UnityEngine;

public class Test : MonoBehaviour
{
    [SerializeField]
    int point;
 
    void Start()
    {
        StartCoroutine(CountSample());
    }
 
    IEnumerator CountSample()
    {
        for (int i = 0; i < 10; i++)
        {
            point++;
            yield return new WaitForSeconds(0.5f);
        }
    }
}

各エネミーのInspectorビューにアタッチされているEnemyControllerスクリプトのLifeフィールドを確認してみましょう。

考えられるゲーム制作での用途

  • 「爆風」ゾーン内のすべてのモンスターを反復処理し、適切なダメージを与える
  • オブジェクトの粉砕(個々の部品をループして物理的な要素を加える必要があります)
  • プレーヤーのインベントリにアイテムを追加する場合は、追加する前にデータベースをループして、そのアイテムが存在するかどうかを確認する必要があります。
  • ビュー内のすべてのゲームオブジェクトを赤にしたい(ループを使用して各オブジェクトを反復し、各1に影響を与える必要があります。)

Unity,小技

Posted by hidepon