我已经将Unity集成到Android活动中(类似于this).
现在,我需要根据用户输入动态加载场景.
我已经尝试过复制how Unity loads a scene的方式,因为我知道Android Activity能够与UnityPlayer通信,但显然不起作用:
UnityPlayer.UnitySendMessage("Application", "LoadLevel", "9");
我知道在Unity中加载场景的工作是other ways,但我不知道如何从Android本身调用它们(还要考虑UnitySendMessage仅允许一个参数).
解决方法:
如果计划从Android加载Unity活动,则应创建一个空场景.将此称为主菜单,然后使其成为通过“构建设置”加载的默认场景.使其索引为0.
此空场景的目标是在调用附加到该场景的脚本时加载特定场景.
在此主菜单场景中,创建一个名为SceneLoader的GameObject,然后将以下脚本附加到该对象:
public class SceneLoader : MonoBehaviour
{
public void loadScene(string sceneIndex)
{
UnityEngine.SceneManagement.SceneManager.LoadScene(Convert.ToInt16(sceneIndex));
}
}
您还应该在每个其他场景中创建一个名为SceneLoader的GameObject,并将上面的脚本附加到所有这些场景上.
现在,加载Unity Activity,它会自动加载默认/空场景.由于其中只有一个GameObject / SceneLoader,因此加载速度非常快.
现在,您可以使用以下命令从Java加载其他场景:
UnityPlayer.UnitySendMessage("SceneLoader", "loadScene", "9");
原文地址:https://codeday.me/bug/20191012/1900818.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。