導入
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 つの部分に分かれています。
-
Update()
すべてのフレームhurtImage
の。isDamage
変数が の場合true
、hurtImage
のflashColor
、それ以外の場合はその色を にフェードしますclearColor
。最後にisDamage
変数false
。 -
OnAttack()
攻撃イベントを処理するためのメソッド。渡されたdamage
値が、直接戻ります。現在のオブジェクトのタグが「プレイヤー」の場合は体力を減らし、「敵」の場合は敵の体力を減らします。
最後に、色を変更するには、Image
コンポーネント。