【Unity3D日常开发】(六)Unity3D中实现场景的淡入淡出效果
【摘要】 推荐阅读CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客QQ群:1040082875 Unity3d 场景的淡入淡出效果实现 思路用UGUI设计一张全屏的纯色图片控制图片的Alpha值,来实现淡入淡出的效果效果展示 实现先新建一张图片,设置锚点为全屏设置颜色值新建脚本Fade_Controlusing UnityEngine;using UnityEngine.UI...
推荐阅读
Unity3d 场景的淡入淡出效果实现
思路
- 用UGUI设计一张全屏的纯色图片
- 控制图片的Alpha值,来实现淡入淡出的效果
效果展示
实现
- 先新建一张图片,设置锚点为全屏
设置颜色值
- 新建脚本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)