废话不多说,上图上代码
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
using System.Collections;
public class DanChu : MonoBehaviour
{
public GameObject 淡入淡出;
public Image fadeImage; // 通过Inspector分配
public float fadeDuration = 1f; // 淡出持续时间
public string sceneToLoad; // 要加载的场景名称
public Button 了解情况;
void Start()
{
了解情况.onClick.AddListener(()=>FadeOutAndLoadScene());
}
// 调用这个方法来开始淡出并切换场景
public void FadeOutAndLoadScene()
{
淡入淡出.SetActive(true);
StartCoroutine(FadeImageOut());
}
IEnumerator FadeImageOut()
{
// 从透明到不透明
float alpha = fadeImage.color.a;
for (float t = 0.0f; t < 1.0f; t += Time.deltaTime / fadeDuration)
{
Color newColor = new Color(fadeImage.color.r, fadeImage.color.g, fadeImage.color.b, Mathf.Lerp(alpha, 1, t));
fadeImage.color = newColor;
yield return null;
}
// 淡出完成后加载新场景
SceneManager.LoadScene(sceneToLoad);
}
}