屏幕在场景之间淡入淡出,但返回上一个场景时黑屏仍然存在

Screen Fades between scenes but the black screen remains when returning to Previous Scene

如果标题和我的解释感觉有点不对,我很抱歉,英语不是我的母语。所以我正在为 android 制作一个 2d 游戏,我有几个场景,如 MainMenu、Level Selection 等。我看了 Brackeys 的过渡视频,并完全按照他说的做了。场景按预期从一个场景淡入另一个场景,但是当我尝试返回到我已经淡出的任何先前屏幕形式时,问题就开始了。屏幕保持黑色,即 alpha 通道保持为 1。

这是脚本,我在这里使用FadeTo函数进行过渡。我在结束文件中有 2 个动画文件 'Start' 'End' 屏幕从透明 [alpha = 0] 变为纯黑色 [Alpha = 1]

赢得一个关卡后,玩家可以选择进入主菜单或进入关卡 select 或场景进入 select 新解锁的关卡,但正如我之前所说......一次屏幕已经淡出,如果我们尝试 return 它会保持纯黑色。

using System.Collections; 
using System.Collections.Generic;
using UnityEditorInternal;
using UnityEngine;
using UnityEngine.SceneManagement;
    
     public class FadeAnimationSC : MonoBehaviour
     {
         public Animator fadeTransition;
         public float transitionTime = 1f;
     
         public void FadeTo(string scene)
         {
             StartCoroutine(fadeAnim(scene));
         }
     
         IEnumerator fadeAnim(string scene)
         {
             fadeTransition.SetTrigger("Start");
             yield return new WaitForSeconds(transitionTime);
             SceneManager.LoadScene(scene);
         }
         
     }

如果有人可以帮助我或 pin-point 我获得有关我想要的功能的教程或文章,我会很高兴。如果你们需要,我很乐意添加其他信息。感谢您的宝贵时间,非常感谢!

好的,当您在关卡结束时创建淡出时,您可以创建一个脚本在关卡开始时淡入。

using System.Collections; 
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

 public class FadeInAnimationSC : MonoBehaviour
 {
     // here create another clip and rather than change the alpha 0->1, change it to 1->0 in the animation clip
     public Animator fadeTransition; 

     public void Awake()
     {
         fadeTransition.SetTrigger("Start");
     }
     
 }

所以这个脚本会在关卡开始时淡入淡出,因为它在唤醒功能时间运行,只需将它附加到黑屏或您正在使用的对象上,也可以调整开始淡入淡出的时间您可以像在脚本中一样使用协程。将此脚本添加到您遇到问题的任何级别。

PS: there are solutions better than this, like we can have one script for all this but I can't implement it as I don't see the whole picture of your task.