![](/img/trans.png)
[英]How to change the screen orientation when switching from one scene to another in UNITY?
[英]How to change scene in Unity when called from listener?
因此,正如我在这里所告诉的,我无法通过Update()函数要求更改场景。 好的,否则我如何实现场景转换逻辑?
因此,例如,在Update()内部,我正在侦听服务器的响应和请求:
private void Update() {
// A bunch of parsing stuff
switch (DataFromServer) {
case "ServerAllowedSceneChange":
SceneManager.LoadScene(DataFromServer[2]);
break;
}
}
我就是这样看实现逻辑的,但是,Unity似乎不是这样做的。 有人可以建议如何以Unity的工作方式做类似的事情:)
这种方法实际上起作用的缺点是,当我这样称呼场景时,还没有准备好使用场景。 在场景更改调用之后,我立即尝试访问尚不存在的对象。 并且所有级别完成加载的检查均不起作用。
因此,如果我们返回代码示例,请执行以下操作:
switch (DataFromServer) {
case "ServerAllowedSceneChange":
SceneManager.LoadScene(DataFromServer[2]);
GameObject objectFromSceneImSwithcingTo = GameObject.Find("objectFromSceneImSwithcingTo").gameObject;
break;
}
我从Unity收到NullReference错误。
SceneManager API具有可以订阅场景更改的事件。 例如:
using UnityEngine.SceneManagement;
void OnEnable()
{
SceneManager.sceneLoaded += OnSceneLoaded;
}
void OnDisable()
{
SceneManager.sceneLoaded -= OnSceneLoaded;
}
private void OnSceneLoaded(Scene scene, LoadSceneMode mode)
{
// all objects are loaded, call other methods
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.