(Unity)敵のHPが一定時間経過ごとに自動回復する(コルーチンの活用)

(サンプルコード)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class EnemyHP : MonoBehaviour
{
    public GameObject effectPrefab1;
    public GameObject effectPrefab2;
    public int HP;

    void Start()
    {
        StartCoroutine(HPRecovery());
    }

    void OnTriggerEnter(Collider other)
    {
        if (other.CompareTag("Omizu"))
        {
            HP -= 1;

            if (HP > 0)
            {
                GameObject effect1 = Instantiate(effectPrefab1, transform.position, Quaternion.identity);
                Destroy(effect1, 0.75f);
            }
            else
            {
                GameObject effect2 = Instantiate(effectPrefab2, transform.position, Quaternion.identity);
                Destroy(effect2, 0.75f);
                Destroy(gameObject);
            }
        }
    }

    // HPの自動回復
    private IEnumerator HPRecovery()
    {
        while (true)
        {
            HP += 1;

            // MAXHP以上には回復しない
            if (HP > 5)
            {
                HP = 5;
            }

            // 3秒ごとに回復する。
            yield return new WaitForSeconds(3);
        }
    }
}