【Unity3D日常开发】(六)Unity3D中实现场景的淡入淡出效果

举报
恬静的小魔龙 发表于 2021/10/24 18:21:19 2021/10/24
【摘要】 推荐阅读CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客QQ群:1040082875 Unity3d 场景的淡入淡出效果实现 思路用UGUI设计一张全屏的纯色图片控制图片的Alpha值,来实现淡入淡出的效果效果展示 实现先新建一张图片,设置锚点为全屏设置颜色值新建脚本Fade_Controlusing UnityEngine;using UnityEngine.UI...

推荐阅读

Unity3d 场景的淡入淡出效果实现

思路

  1. 用UGUI设计一张全屏的纯色图片
  2. 控制图片的Alpha值,来实现淡入淡出的效果

效果展示

这里写图片描述

实现

  1. 先新建一张图片,设置锚点为全屏
    这里写图片描述
    设置颜色值
    这里写图片描述
    这里写图片描述
  2. 新建脚本Fade_Control
using UnityEngine;
using UnityEngine.UI;


//状态效果值
public enum FadeStatuss
{
    FadeIn,
    FadeOut
}

public class Fade_Control : MonoBehaviour
{
	//设置的图片
    public Image m_Sprite;
    //透明值
    private float m_Alpha;
    //淡入淡出状态
    private FadeStatuss m_Statuss;
    //效果更新的速度
    public float m_UpdateTime;
    //场景名称
    public string m_ScenesName;

    // Use this for initialization
    void Start()
    {
	    //默认设置为淡入效果
        m_Statuss = FadeStatuss.FadeIn;
    }

    // Update is called once per frame
    void Update()
    {
	    //控制透明值变化
        if (m_Statuss == FadeStatuss.FadeIn)
        {
            m_Alpha += m_UpdateTime * Time.deltaTime;
        }
        else if (m_Statuss == FadeStatuss.FadeOut)
        {
            m_Alpha -= m_UpdateTime * Time.deltaTime;
        }
        UpdateColorAlpha();
    }

    void UpdateColorAlpha()
    {
	    //获取到图片的透明值
        Color ss = m_Sprite.color;
        ss.a = m_Alpha;
        //将更改过透明值的颜色赋值给图片
        m_Sprite.color = ss;
        //透明值等于的1的时候 转换成淡出效果
        if (m_Alpha > 1f)
        {
            m_Alpha = 1f;
            m_Statuss = FadeStatuss.FadeOut;
        }
        //值为0的时候跳转场景
        else if (m_Alpha < 0)
        {
            SceneManager.LoadScene(m_ScenesName);
        }
    }
}

OK,有一点不完美的是在屏幕亮了之后才加载场景,应该是在正在亮的时候就加载场景,在以后再完善一下吧

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。