Ich habe Unity-Anwendung, die von einer anderen Android-Anwendung über App-Links aufgerufen wird. Also, ich habe Android Plugin für Unity erstellt, um mit Parametern umzugehen, die per URL an die App gesendet werden. Abhängig von den Daten von der URL möchte ich eine von drei Szenen laden, die in meiner Unity-Anwendung definiert sind. Ich habe versucht, gameobject von Szene No2 aufzurufen, aber ich habe einen Fehler: Objekt nicht gefunden und Szene no0 ist geladen.Aufruf Szene in Unity von Android-Plugin
Dies ist Anruf von Android-Plugin zur Einheit:
UnityPlayer.UnitySendMessage("ARCamera", "startScene", "some data");
Es ist wie Unity sieht sucht ARCamera in Szene no0 und es ist nicht da, natürlich. Ist es möglich, eine Szene aufzurufen, die in Build-Einstellungen nicht als startend (0) definiert ist? Wie?
EDIT:
In android:
public void startAppP() {
Log.v(TAG, "starting p");
UnityPlayer.UnitySendMessage("ARCameraP", "loadScene", "sceneP");
}
und in Unity (Szene als no3 definiert) in Skript auf dem Objekt angebracht genannt ARCameraP:
public void loadScene(string sceneName)
{
UnityEngine.Debug.Log("HI");
Application.LoadLevel(sceneName);
}
Es hält Sendmessage Rückkehr : Objekt ARCameraP nicht gefunden!
Ich benutze ältere Version von Unity, weil ich einige Probleme mit Vuforia hatte. Die Kamera zeigte einen schwarzen Bildschirm, bis ich Unity auf Version 5.1.2 herabstufte.
Ja, ich mache so etwas ... Ich sende den Namen der Szene und nach dem Namen lade ich was ich brauche mit Application.LoadLevel ("nameofscene"). Aber das Problem ist, dass Scene0 immer für ungefähr eine Sekunde angezeigt wird und dann Scene2 oder Scene1 (abhängig davon, was anfangen soll), das will ich nicht. Es sieht aus wie Splash-Bildschirm. Ich möchte direkt von Java Code sagen, welche Szene geladen werden soll. Und alles wird hinzugefügt Build-Einstellungen – midnightcoffee
@midnightcoffee 'Application.LoadLevel (" nameofscene ")' ist veraltet. 'SceneManager.LoadScene' hat es ersetzt. Der Code in meiner Antwort lädt die Szene direkt von der Java-Seite. Erstellen Sie ein GameObject mit dem Namen "NameOfGameObject", und fügen Sie ein Skript hinzu. Innerhalb dieses Skripts fügen Sie die loadScene-Funktion in die Skripts ein. Ruf es auch von Java mit dem Java-Code, den ich gepostet habe. Das sollte funktionieren. Wenn nicht, posten Sie Ihren Java- und C# -Code für weitere Hilfe. – Programmer
Es gibt immer SendMessage: Objekt ARCameraP nicht gefunden! aber Objekt ist in Szene und wird so genannt – midnightcoffee