Unity实现场景加载渐入渐出效果
发表于:2024-11-25 作者:热门IT资讯网编辑
编辑最后更新 2024年11月25日,项目中要用到加载场景的时候有个渐入渐出的效果,做了一下,跟大家分享首先,创建两个场景Main和Game场景;其次,在Main场景中创建FandeScene.cs脚本,创建Fade空对象,挂载,给一张黑
项目中要用到加载场景的时候有个渐入渐出的效果,做了一下,跟大家分享
首先,创建两个场景Main和Game场景;
其次,在Main场景中创建FandeScene.cs脚本,创建Fade空对象,挂载,给一张黑色的图片,拖成预设体,同样也拖到Game场景中。
using UnityEngine;using System.Collections;public class FadeScene : MonoBehaviour { public Texture blackTexture; private float alpha = 1.0f; public float fadespeed = 0.2f; private int fadeDir = -1; // Use this for initialization void Start () { } // Update is called once per frame void Update () { } void OnGUI() { alpha += fadeDir * fadespeed * Time.deltaTime; GUI.color = new Color (GUI.color .r ,GUI.color .g ,GUI.color .b,alpha); GUI.DrawTexture (new Rect (0,0,Screen .width ,Screen .height), blackTexture); } public float BeginFade(int direction) { fadeDir = direction; return 1 / fadespeed; } void OnLevelWasLoaded() { Debug.Log ("场景加载完毕!"); BeginFade (-1); }}
再次,加载场景
协程加载 IEnumerator FadeLoadScene() { float time = GameObject.Find ("Fade").GetComponent().BeginFade (1); yield return new WaitForSeconds (time); SceneManager.LoadSceneAsync ("Game"); }
这样运行,就会出现渐入渐出的效果。