在Android中将Unity加载为子视图时调用场景

时间:2016-12-05 19:36:59

标签: android unity3d

我已将Unity集成到Android活动中(类似于this)。 我现在需要根据用户输入动态加载场景。

我尝试复制how Unity loads a scene,这是我知道Android Activity能够与UnityPlayer通信的唯一方式,但显然不起作用:

UnityPlayer.UnitySendMessage("Application", "LoadLevel", "9");

我知道在Unity中加载场景有other ways,但我不知道如何从Android本身调用这些场景(也考虑UnitySendMessage只允许一个参数)。

1 个答案:

答案 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");