0

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

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

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

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);
         }
         
     }

如果有人可以帮助我或将我指向有关我想要的功能的教程或文章,我会很高兴。如果你们需要,我很乐意添加其他信息。感谢您的时间,我很感激!

4

1 回答 1

0

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

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:有比这更好的解决方案,就像我们可以为所有这些提供一个脚本,但我无法实现它,因为我看不到您任务的全貌。

于 2020-07-27T11:12:36.023 回答