(Unity)HPに応じて敵の色を変化させる

(1)準備

  • 新規にCubeを作成
  • 名前を「EnemyX」に変更

 

(2)スクリプトの作成

  • 新規にC#スクリプトを作成
  • 名前を「EnemyHealth」に変更
  • 下記のコードを書いてチェック

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

public class EnemyHealth : MonoBehaviour
{
    private int HP = 10;

    private void Update()
    {
        if(HP > 8)
        {
            GetComponent<MeshRenderer>().material.color = Color.green;
        }
        else if(HP > 5)
        {
            GetComponent<MeshRenderer>().material.color = Color.yellow;
        }
        else if(HP > 3)
        {
            GetComponent<MeshRenderer>().material.color = Color.red;
        }
    }

    private void OnCollisionEnter(Collision collision)
    {
        if(collision.gameObject.CompareTag("Shell"))
        {
            Destroy(collision.gameObject);

            HP -= 1;
        }
    }
}

(3)設定

  • スクリプトをEnemyXに追加
  • Tagの条件等を整備する。

 

(4)再生&確認

  • ゲームを再生して確認
  • HPが減少するごとにEnemyXの色が変化すれば成功です。