我有通过应用程序链接从另一个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之前,相机显示黑屏。
答案 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");