我有一个 Unity 应用程序,它是通过应用程序链接从另一个 Android 应用程序调用的。因此,我为 Unity 创建了 Android 插件来处理通过 url 发送到应用程序的参数。根据 url 中的数据,我想加载 Unity 应用程序中定义的三个场景之一。我试图从场景 no2 调用游戏对象,但出现错误:未找到对象且场景 no0 已加载。
这是从 Android 插件到 Unity 的调用:
UnityPlayer.UnitySendMessage("ARCamera", "startScene", "some data");
看起来 Unity 正在场景 0 号中寻找 ARCamera,当然它不在那里。 是否可以调用build设置中未定义为起始(0)的场景?怎么办?
编辑:
在安卓中:
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 传递给 SceneManager.LoadScene(0);
来加载默认场景,但您不能使用该字符串方法 SceneManager.LoadScene("defaultScene");
的重载版本,直到您在build设置中添加场景。
C# 代码:
public void loadScene(string sceneName)
{
SceneManager.LoadScene(sceneName);
}
Java代码:
UnityPlayer.UnitySendMessage("NameOfGameObject", "loadScene", "sceneName");
确保场景名称已添加到build设置中。如果不是,则使用 SceneManager.LoadScene(0);
关于java - 从 Android 插件调用 Unity 中的场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36822982/