C# 统一:真实设备上的场景重叠
我有一个2D游戏,我在我的菜单场景中的开始按钮上使用以下代码,当我的玩家在游戏场景中死亡时,我在重新启动按钮上使用以下代码。只有当我在真实设备上使用Build&Run Unity设置玩游戏时,问题才会出现。我有两个按钮可以移动我的玩家,按下几次后,移动会滞后,在玩游戏时,菜单场景会重叠在我的游戏场景上。每次比赛开始时都会发生。更直接地说。我正在玩,突然一个黑色的背景和两个大的开始和设置按钮在我玩的过程中闪烁,延迟我的控制,然后它们消失了。有没有人知道这个问题可能来自哪里C# 统一:真实设备上的场景重叠,c#,unity3d,unity5,C#,Unity3d,Unity5,我有一个2D游戏,我在我的菜单场景中的开始按钮上使用以下代码,当我的玩家在游戏场景中死亡时,我在重新启动按钮上使用以下代码。只有当我在真实设备上使用Build&Run Unity设置玩游戏时,问题才会出现。我有两个按钮可以移动我的玩家,按下几次后,移动会滞后,在玩游戏时,菜单场景会重叠在我的游戏场景上。每次比赛开始时都会发生。更直接地说。我正在玩,突然一个黑色的背景和两个大的开始和设置按钮在我玩的过程中闪烁,延迟我的控制,然后它们消失了。有没有人知道这个问题可能来自哪里 public void
public void LoadScene(string sceneName)
{
SceneManager.LoadScene(sceneName);
}
奇怪的是,这不应该发生 但是,请尝试将
LoadSceneAsync
与此代码一起使用,以查看该错误是否仍然发生:
使用UnityEngine;
使用UnityEngine.SceneManagement;
使用系统集合;
公共类场景管理器:MonoBehavior{
IEnumerator加载场景;
公众浮标装载进度;
公共void加载场景(字符串levelName){
loadScene=AsyncLoad(levelName);
开始例行程序(加载场景);
}
私有IEnumerator异步加载(字符串级别名称){
AsyncOperation asyncLoad=SceneManager.LoadSceneAsync(levelName,LoadSceneMode.Single);
asyncLoad.allowSceneActivation=false;
而(!asyncLoad.isDone){
loadingProgress=Mathf.Clamp01(asyncLoad.progress);
asyncLoad.allowSceneActivation=false;
如果(asyncLoad.progress==0.9f){
asyncLoad.allowSceneActivation=true;
}
收益返回空;
}
}
}
谢谢你的回答。对不起,这个可能很愚蠢的问题。它说loadScene和loadingProgress不存在。我是否需要将它们添加为其他内容?我以前没有遇到LoadSceneAsync。很抱歉,我忘了写这两个变量的声明:loadScene
是一个IEnumerator
,因为协同程序是统一的,而loadingProgress
只是一个浮点值,可以用来跟踪加载进度,以便将其与加载杆一起使用。我已经更正了代码。