当前位置: 首页 > news >正文

Unity 淡入淡出

淡入(Fade in):类似打开幕布

淡出(Fade out):类似关上幕布

方案一  使用Dotween(推荐)

using DG.Tweening;
using UnityEngine;
using UnityEngine.UI;

public class Test : MonoBehaviour
{
    public Image curtain;
    private float fadeTime = 1;
    
    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.A))
        {
            SetAlpha(true);//测试淡入
        }
        
        if (Input.GetKeyDown(KeyCode.D))
        {
            SetAlpha(false);//测试淡出
        }
    }

    /// <summary>
    /// 设置淡入淡出
    /// </summary>
    /// <param name="isFadeIn">是否是淡入</param>
    private void SetAlpha(bool isFadeIn)
    {
        curtain.DOFade(isFadeIn ? 0 : 1, fadeTime);
    }

    private void OnDisable()
    {
        curtain.DOKill();
    }
}

方案二 使用协程

using System.Collections;
using UnityEngine;
using UnityEngine.UI;

public class Test : MonoBehaviour
{
    public Image fadePlane;
    private float fadeTime = 1;
    
    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.A))
        {
            StartCoroutine(Fade(true));//测试淡入
        }
        
        if (Input.GetKeyDown(KeyCode.D))
        {
            StartCoroutine(Fade(false));//测试淡出
        }
    }
    
    IEnumerator Fade(bool isFadeIn)
    {
        var from = fadePlane.color;
        var to = new Color(from.r, from.g, from.b, isFadeIn ? 0 : 1);
        
        float speed = 1 / fadeTime;
        float percent = 0;

        while (percent < 1)
        {
            percent += Time.deltaTime * speed;
            fadePlane.color = Color.Lerp(from, to, percent);
            yield return null;
        }
    }
}

方案三  使用Animation(不推荐)

相关文章:

  • agent和android怎么结合:健康助手,旅游助手,学习助手
  • 【插入排序】Insert_Sort
  • 电机控制::软件架构::微型软件架构
  • 基于开源Odoo、SKF Phoenix API与IMAX-8数采网关的圆织机设备智慧运维实施方案 ——以某纺织集团圆织机设备管理场景为例
  • I²C简介
  • OSPF协议五种网络类型中DR和BDR选举说明
  • Linux内核实时机制4 - 实时改造优化 - PREEMPT_RT方案
  • Linux学习笔记之深入理解进程调度
  • 3、cadence从零开始让一个VCO起振——如何调频
  • 复现log4j2的jndi注入成功反弹shell
  • SQL进阶技巧:如何统计用户跨端消费行为?
  • (leetcode 1749 前缀和)1749. 任意子数组和的绝对值的最大值
  • 【嵌入式Linux应用开发基础】进程实战开发
  • 华为固态电池引发的思索
  • 2.18寒假
  • 06:高级命令
  • DeepSeek驱动下的数据仓库范式转移:技术解耦、认知重构与治理演进
  • 解析JUC包底层源码实现
  • 3.5 使用Tokenizer编解码文本:从原理到企业级实践
  • ArcGIS笔记之度分秒与十进制度的转换
  • 这座古村,藏着多少赣韵风华
  • 悬疑推理联合书单|虫神山事件
  • 一企业采购国产化肥冒充“挪威化肥”:7人被抓获
  • 迪拜金融市场CEO:2024年市场表现出色,超八成新投资者来自海外
  • 马新民卸任外交部条约法律司司长
  • 菲护卫艇企图侵闯中国黄岩岛领海,南部战区:依法依规跟踪监视、警告驱离