Files
VRProject/Assets/_Scripts/FadeOut.cs
2026-07-28 12:22:44 +09:00

55 lines
1.8 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using UnityEngine;
using System.Collections;
// アタッチしたSprite Rendererの色を操作してフェードアウトさせるスクリプト
[RequireComponent(typeof(SpriteRenderer))]
public class FadeOutSprite : MonoBehaviour
{
private SpriteRenderer spriteRenderer;
public float fadeDuration = 1.0f; // 消えるまでの時間(秒)
public float startDelay = 0.5f; // 表示してからフェードを開始するまでの待ち時間(秒)
private void Awake()
{
spriteRenderer = GetComponent<SpriteRenderer>();
}
private void OnEnable()
{
// オブジェクトが有効になったときにフェードアニメーションを開始
StartCoroutine(FadeOutCoroutine());
}
private IEnumerator FadeOutCoroutine()
{
// 1. 最初は完全に表示
SetAlpha(1f);
// 2. 指定時間待機(画像がはっきり見える時間)
yield return new WaitForSeconds(startDelay);
// 3. アルファ値を徐々に減らすフェードアウト
float timer = 0f;
Color initialColor = spriteRenderer.color;
while (timer < fadeDuration)
{
timer += Time.deltaTime;
// 経過時間に基づいてアルファ値を計算1 -> 0
float alpha = Mathf.Lerp(1f, 0f, timer / fadeDuration);
SetAlpha(alpha);
yield return null; // 次のフレームまで待機
}
// 4. 完全に消えたら自身を破棄(再利用しない場合)
SetAlpha(0f);
Destroy(gameObject);
}
private void SetAlpha(float alpha)
{
Color current = spriteRenderer.color;
current.a = alpha; // Alpha値を更新
spriteRenderer.color = current;
}
}