从Android插件调用Unity中的场景

时间:2016-04-24 12:17:18

标签: java android vuforia unity3d

我有通过应用程序链接从另一个Android应用程序调用的Unity应用程序。所以,我已经为Unity创建了Android插件来处理通过url发送到app的params。根据来自url的数据,我想加载Unity应用程序中定义的三个场景之一。我试图从场景no2调用gameobject但是我有错误:找不到对象并加载了场景no0。

这是从Android插件到Unity的调用:

UnityPlayer.UnitySendMessage("ARCamera", "startScene", "some data");

看起来Unity正在寻找场景no0中的ARCamera,当然它并不在那里。 是否有可能在构建设置中调用未定义为起始(0)的场景?怎么样?

修改

在android中:

public void startAppP() {
        Log.v(TAG, "starting p");
        UnityPlayer.UnitySendMessage("ARCameraP", "loadScene", "sceneP");
    }

并在Unity(在场景中定义为no3)附加在名为ARCameraP的对象上的脚本中:

public void loadScene(string sceneName)
{
    UnityEngine.Debug.Log("HI");
    Application.LoadLevel(sceneName);
}

它一直返回SendMessage:找不到对象ARCameraP!

我使用的是旧版Unity,因为我在使用Vuforia时遇到了一些问题。在我将Unity降级到版本5.1.2之前,相机显示黑屏。

1 个答案:

答案 0 :(得分:2)

您可以通过将 0 传递到SceneManager.LoadScene(0);来加载默认场景,但不能使用方法{{1}的字符串重载版本直到您在构建设置中添加场景。

C#代码:

SceneManager.LoadScene("defaultScene");

Java代码:

public void loadScene(string sceneName)
{
    SceneManager.LoadScene(sceneName);
}

确保将场景名称添加到“构建设置”中。如果不是,请使用UnityPlayer.UnitySendMessage("NameOfGameObject", "loadScene", "sceneName");