Unity中闪烁效果

笔者在制作demo中,想要实现屏幕闪烁红光的效果,类似于MC中受伤。以下是具体实现思路:

  1. 创建一个UI面板并覆盖整个屏幕。
  2. 通过修改UI面板的透明度来实现闪红效果。
  3. 编写脚本来控制透明度的变化来完成。

代码逻辑展示

第1,2步就不详细说,主要是代码逻辑

  1. 通过脚本控制面板透明度

    public Image imageComponent; // UI Image组件
    
    void SetTransparency(float alpha)
    {
        Color color = imageComponent.color;
        color.a = alpha; // 设置Alpha值,通过color.a的属性
        imageComponent.color = color;
    }
    
    
  2. 简易代码

    using UnityEngine;
    using UnityEngine.UI;
    
    public class RedFlash : MonoBehaviour
    {
        public Image redPanel;
        public float flashSpeed = 5f;
    
        private void Update()
        {
            if (Input.GetKeyDown(KeyCode.Space)) // 按下space触发效果
            {
                StartCoroutine(Flash());
            }
        }
    
        IEnumerator Flash()
        {
            Color color = redPanel.color;
            color.a = 0.5f; // 闪红最大透明度
            redPanel.color = color;