ブログ

(Unity)攻撃を受けるごとに変化する(Switch文の活用)

*敵から攻撃を受けるごとにボディカラーを変化させる。

*スペースキーを押すとリセットされる。


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

public class PlayerHealth : MonoBehaviour
{
    // 怒りポイントの定義
    private int angerPoint;

    private void OnTriggerEnter(Collider other)
    {
        if (other.CompareTag("EnemyShell"))
        {
            Destroy(other.gameObject);

            // 敵の攻撃を受けるたびに怒りポイントが1ずつ溜まる。
            angerPoint += 1;

            // 怒りポイントに上限を設定
            if(angerPoint > 5)
            {
                angerPoint = 5;
            }
        }
    }

    void Update()
    {
        // 怒りポイントが溜まるごとにプレーヤーのボディカラーが変化する。
        switch (angerPoint)
        {
            case 2:
                this.gameObject.GetComponent<MeshRenderer>().material.color = Color.blue;
                break;
            case 3:
                this.gameObject.GetComponent<MeshRenderer>().material.color = Color.green;
                break;
            case 4:
                this.gameObject.GetComponent<MeshRenderer>().material.color = Color.yellow;
                break;
            case 5:
                this.gameObject.GetComponent<MeshRenderer>().material.color = Color.red;
                break;
        }

        // 怒りポイントのリセット
        if(Input.GetKeyDown(KeyCode.Space))
        {
            angerPoint = 0;
            this.gameObject.GetComponent<MeshRenderer>().material.color = Color.white;
        }
    }
}










*スペースキーでリセット!