我已将Unity集成到Android活动中(类似于this)。 我现在需要根据用户输入动态加载场景。
我尝试复制how Unity loads a scene,这是我知道Android Activity能够与UnityPlayer通信的唯一方式,但显然不起作用:
UnityPlayer.UnitySendMessage("Application", "LoadLevel", "9");
我知道在Unity中加载场景有other ways,但我不知道如何从Android本身调用这些场景(也考虑UnitySendMessage
只允许一个参数)。
答案 0 :(得分:1)
如果您计划从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");