Articles of scenemanager

当场景加载时,将玩家定位在起始点。 (Unity2D)

如果检查员显示pointName和player.startPoint为真,那么为什么玩家的位置不会以“ToNeighborhood”的pointName为起点。 注意:代码运行,如果pointName == player.startPoint。 即使它们都包含检查员显示的相同string,它也不会运行 using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlayerStartPoint : MonoBehaviour { private PlayerController player; private CameraController theCamera; public string pointName; // Use this for initialization void Start () { player = FindObjectOfType<PlayerController>(); theCamera = FindObjectOfType<CameraController>(); if (pointName == player.startPoint) { Debug.Log("Changing"); player.transform.position = gameObject.transform.position; theCamera.transform.position = new Vector3(transform.position.x, transform.position.y, […]

Unity Loadscene链接错误

我正在开发一款手机游戏,并且遇到了一个奇怪的错误/错误。 当我加载到主场景时,一切都很好,一切正常,没有错误。 然而,有两种情况是中断的 当我打开暂停菜单,并进入主菜单。 然后回到一切都破了。 直接从主菜单进入关卡 脚本中的GameObject链接丢失,还有一些其他的东西。 以下是使用的错误和相应的代码: 如果需要编辑器的一些屏幕,我会更新这个问题 用于暂停菜单的代码: public class Pause : MonoBehaviour { [SerializeField]private bool _isPaused; [SerializeField] private GameObject _attackButton; [SerializeField] private GameObject _moveButton; [SerializeField] private GameObject _pauseMenu; [SerializeField] private GameObject _pauseButton; // Use this for initialization void Start () { _isPaused = false; _pauseMenu.SetActive(false); } // Update is called once per […]

如何在WebGL中正确卸载添加器场景?

我正在WebGL中创建一个应用程序。 我有一个加载场景,我正在加载: SceneManager.LoadScene("Loading Scene", LoadSceneMode.Additive); 它正确加载。 然后,我加载完所有东西后,我删除添加剂加载场景: SceneManager.UnloadScene(SceneNames.Loading); 在编辑器中,它完全卸载。 但是,在浏览器中,通过WebGL,它被调用,但不会卸载。 如果我把它扔进协同程序,等待3秒钟,它卸载。 我有一个两部分的问题: 为什么在卸载之前等待3秒钟解决问题? 卸载这个场景的正确方法是什么,以便在那里没有任意的“等待秒”?

加载场景不会重新激活游戏对象

我有一些水平和一个主菜单。 从主菜单启动游戏(在编辑器debugging模式下),我可以select一个级别加载它,没问题。 但是,当我想要回到主菜单使用 SceneManager.LoadScene(index); 我的很多游戏对象都会抛出exception gameobjects被破坏,但你正在尝试访问它 和 缺less参考例外 等等。 但是,当我从编辑器开始(而不是使用主菜单)的水平,我可以回到主菜单,它应该像它应该的。 请注意 ,我没有任何持久的游戏对象。 我有单身,但在这里没有坚持。 任何想法可能会导致这个问题?

使用Unity中的SceneManager和叠加式场景平滑场景过渡

我正在尝试使用Unity的新SceneManager类,我希望在场景之间有平滑的过渡。 目前我想,做这些转换的唯一方法就是在场景对象上手动实现它们,利用场景可以加载的事实。 在伪代码中我像这样的东西: for gameObject in previousSceneGameObjects gameObject.animateSceneExit() endFor for gameObject in nextSceneGameObjects gameObject.animateSceneEnter() endFor 我觉得有一些我错过了:P哪个是你建议的最好的方法? 我的方法有效吗?

现场重新加载时Respawn无法正常工作。 为什么是这样?

所以我做了重生function,应该发生的是它应该加载保存的检查点的脚本。 不过,我需要重新设置场景(昨天晚上这很正常,这很奇怪…)。 本质上,检查点等待一个玩家,然后当玩家进入当前检查点被写入一个.txt文件。 重新加载或死亡后,场景重新启动,读取.txt文件并抓取检查点。 一切正常,没有Scene scene = SceneManager.GetActiveScene(); SceneManager.LoadScene(scene.name); //Reload scene. Scene scene = SceneManager.GetActiveScene(); SceneManager.LoadScene(scene.name); //Reload scene. 但是我需要这个来刷新这个场景。 CheckPoint代码: using UnityEngine; using System.Collections; public class Checkpoint : MonoBehaviour { public LevelManager levelManager; //Empty level manager. // Use this for initialization void Start() { //levelManager = FindObjectOfType<LevelManager>(); //Unnneeded } void OnTriggerEnter(Collider coll) { if (coll.tag […]

平滑的加载屏幕的场景

我创建了一个加载屏幕,在下一个场景加载时显示加载animation。 我用以下方法asynchronous加载下一个场景: yield return SceneManager.LoadSceneAsync(scene,LoadSceneMode.Additive); 并且设置Application.backgroundLoadingPriority = ThreadPriority.Low; ,但行为仍然是一个常规的水平负荷相同。 我错过了什么吗? 预期的行为: 退出级别,并淡出。 出现载入画面。 一旦加载完成,淡出加载屏幕。 淡入下一个场景。 发生什么事: 退出级别,并淡出。 加载屏幕出现,冻结 突然之间,新的景象渐渐消失。 一旦加载开始,游戏就会像普通的场景加载一样发出骚动。 我读过你必须设置allowSceneActivation = false ,所以你可以淡出加载屏幕,然后将其设置为true ,让统一完成加载,但是这完全冻结了我的游戏,就像asynchronous操作永不完成加载。