我面临着场景褪色的问题.我做了一个淡入淡出的动画也制作了一个名为as的脚本,Fader它具有协程功能.动画效果很好.还有一个名为as的空游戏对象,SceneManager它有一个脚本.在此脚本中,按钮功能被写入打开场景.

但问题是当我点击任何按钮,例如Scene2 Button然后淡入动画开始,在某些milliseconds黑屏出现时,如果我点击这个黑色屏幕然后另一个场景打开.它不会打开scene2观看此视频
https://drive.google.com/file/d/0B1H5fdK2PJAnbm5fWDhlN3dVVnc
包链接 https://drive.google.com/file/d/0B1H5fdK2PJAnZ2Y1UEFRMmVFbTA
场景管理器脚本:
public class Manager : MonoBehaviour
{
public void GoBackScene1 ()
{
Fader.instance.Perform ("Scene1");
}
public void Scene2 ()
{
Fader.instance.Perform ("Scene2");
}
public void Scene3 ()
{
Fader.instance.Perform ("Scene3");
}
public void Scene4 ()
{
Fader.instance.Perform ("Scene4");
}
}
Run Code Online (Sandbox Code Playgroud)
场景推子脚本:
public class Fader : MonoBehaviour {
public static Fader instance;
[SerializeField]
private GameObject canvas;
[SerializeField]
private Animator anim;
void Awake(){
makeSingleton ();
}
public void Perform(string levelname)
{
StartCoroutine(FadeInAnimation(levelname));
}
void makeSingleton(){
if (instance != null) {
Destroy (gameObject);
} else {
instance = this;
DontDestroyOnLoad(gameObject);
}
}
IEnumerator FadeInAnimation(string level){
canvas.SetActive (true);
anim.Play ("FadeIn");
yield return new WaitForSeconds (1f);
Application.LoadLevel (level);
anim.Play ("FadeOut");
yield return new WaitForSeconds (2f);
canvas.SetActive (false);
}
}
Run Code Online (Sandbox Code Playgroud)
事情是这样的:
淡入淡出动画长度为 0.417 秒。在动画开始和 LoadLevel 之间,您需要等待 1 秒。这意味着屏幕保持黑屏 0.583 秒。
问题是,在这段时间里,所有其他按钮都是可点击的。因此,如果您单击“场景 2”,然后单击黑屏,您可能会不小心点击“场景 3”按钮,从而启动FadeInAnimation("Scene3"). 由于您制作了Fader不可破坏的单例,因此关卡加载不会停止FadeInAnimation("Scene3")执行。
您需要的是一些锁定,以防止在屏幕黑时点击其他按钮。例如,类似这样的事情就可以完成这项工作:
private bool fading = false;
IEnumerator FadeInAnimation(string level){
if (fading) yield break;
fading = true;
canvas.SetActive (true);
anim.Play ("FadeIn");
yield return new WaitForSeconds (1f);
Application.LoadLevel (level);
anim.Play ("FadeOut");
yield return new WaitForSeconds (2f);
canvas.SetActive (false);
fading = false;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
173 次 |
| 最近记录: |