Unity ではどのようにして画面が赤く点滅しますか?

導入

Unity ではどのようにして画面が赤く点滅しますか?

ここに画像の説明を挿入


方法

1. 新しい画像を作成し、色を赤に設定し、透明度を 0 に設定します。

2. マウントスクリプト

using UnityEngine;
using UnityEngine.UI;

public class Playerhealth : MonoBehaviour
{
    
    
    public Image hurtImage;
    private bool isDamage;
    private Color flashColor = new Color(1f, 0f, 0f, 1f);
    private Color clearColor = Color.clear;

    void Update()
    {
    
    
        if (isDamage)
        {
    
    
            hurtImage.color = flashColor;
        }
        else
        {
    
    
            hurtImage.color = Color.Lerp(hurtImage.color, clearColor, Time.deltaTime * 5);
        }

        isDamage = false;
    }

    public void OnAttack(int damage)
    {
    
    
        isDamage = true;

        if (damage <= 0) return;

        if (gameObject.CompareTag("Player"))
        {
    
    
            // 减少生命值
            // ...
        }

        if (gameObject.CompareTag("Enemy"))
        {
    
    
            // 减少敌人的生命值
            // ...
        }
    }
}

このコードは、プレイヤーまたは敵が攻撃されたときにhurtImage色が。

コードは主に 2 つの部分に分かれています。

  1. Update()すべてのフレームhurtImageの。isDamage変数が の場合truehurtImageflashColor、それ以外の場合はその色を にフェードしますclearColor最後にisDamage変数false

  2. OnAttack()攻撃イベントを処理するためのメソッド。渡されたdamage値が、直接戻ります。現在のオブジェクトのタグが「プレイヤー」の場合は体力を減らし、「敵」の場合は敵の体力を減らします。

最後に、色を変更するには、Imageコンポーネント。


おすすめ

転載: blog.csdn.net/qq_20179331/article/details/130717123