屏幕在场景之间淡入淡出,但返回上一个场景时黑屏仍然存在
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.
如果标题和我的解释感觉有点不对,我很抱歉,英语不是我的母语。所以我正在为 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.