habe ich ein Projekt auf Android Studio (Bluetooth Server-Socket, die einen konstanten Strom von Daten empfangen) und ich frage mich, ob es möglich war, sie in eine DLL zu drehen, dass ich für die Einheit verwenden kann ? Unity verwendet Javascript, aber der Code ist in Java, aber ich verstehe, dass Java in JavaScript eingebettet werden kann, wenn ich es zu einer Bibliothek mache. Ich habe eine ordentliche Menge an Nachforschungen angestellt und mit dem Gradle eine .jar-Datei exportiert und dann gelesen, dass ich mit IKVM ein .jar in eine .dll umwandeln kann, aber jemand hat gesagt, dass IKVM nicht für Android-Projekte verwendet werden kann? Ist das wahr? Und wenn ja, gibt es eine Möglichkeit, dass ich die Klasse für Unity verwenden kann?Mit Klassen auf Android Studio in Unity
Antwort
ich nicht über die Schaffung einer dll Sorge wäre, ist ein Glas ausreichend.
Das Endziel ist your_plugin.jar Datei zu erzeugen und zu Assets/Plugins/Android/your_plugin.jar
zu bewegen. Dann können Sie mit C# (oder vielleicht Javascript) über das JNI darauf zugreifen.
Ich schlage vor, folgende this Tutorial.
Der jist wird, in Ihrer JAR-Datei, erweitern Sie den Standard UnityPlayerActivity und schaffen, was Methoden, die Sie benötigen. Ich würde mit etwas Einfachem beginnen, das nur eine Zeichenfolge zurückgibt. Generieren Sie die JAR-Datei und legen Sie sie in Assets/Plugins/Android
. Erstellen Sie eine AndroidManifest.xml im selben Verzeichnis, wodurch Unity mit Ihrer erweiterten Aktivität statt mit dem Standard gestartet wird. Rufen Sie auf der Unity-Seite einen Verweis auf die aktuelle Instanz der Aktivität ab, die Sie erweitert haben, und rufen Sie Ihre Methode wie folgt auf:
// get a reference to the class
AndroidJavaClass unity = new AndroidJavaClass ("com.unity3d.player.UnityPlayer");
// get a reference to the class instance from a static variable
AndroidJavaObject currentActivity = unity.GetStatic<AndroidJavaObject> ("currentActivity");
// call a method in your UnityPlayer class that returns a string
String s = currentActivity.Call<string>("myJavaMethodReturningString");
Neben JavaScript Unity 3D supportrs es auch C# Werfen Sie einen Blick hier vielleicht ... hilft
http://answers.unity3d.com/questions/330809/integration-of-jar-file-using-jni.html
- 1. java.lang.NoClassDefFoundError Android Studio Unity
- 2. Unity Cardboard Export in Android
- 3. Automatischer Import funktioniert nicht für Android-Klassen in Android Studio
- 4. 3D-Klassen in einem 2D Unity-Spiel
- 5. Registrieren von zusammengesetzten Klassen in Unity
- 6. LogCat mit Unity Android Probleme
- 7. Android Studio: Verwenden gemeinsamer Java-Klassen
- 8. mit java.awt Klassen in Android
- 9. Xamarin Studio mit plattformspezifischen Klassen
- 10. Control + Space funktioniert nicht auf Unity-Projekt auf Visual Studio
- 11. Android-Bibliothek mit Abhängigkeiten für Unity 3d
- 12. Kann "* _Table" -Klassen für DBFlow in Android (Studio) nicht finden
- 13. Android manifest Fehler auf Android Studio 1.5.1
- 14. Wie erweitere ich mehrere Klassen in Android Studio?
- 15. Wo sollte ich Klassen in Android Studio instanziieren?
- 16. Unity Teilen Script Android auf iOS
- 17. Fehler in Android Studio
- 18. C# auf Android: Xamarin oder Unity?
- 19. Wo kann ich Ordner von Klassen in Android Studio hinzufügen?
- 20. Google-Authentifizierung in Android Unity Plugin
- 21. Fortsetzen der Anwendung unter Android mit Unity
- 22. Unity Android-Zeichensteuerung mit UI-Tasten
- 23. 3D-Modellierung auf einem Android-Projekt in Xamarin Studio
- 24. Best Practices für Unity mit .NET Framework-Klassen
- 25. Konversion von Klassen in Dex-Buildfehler in Unity 5.3.5f1 nicht möglich. Wenn Admob Unity-Plugins zum Projekt hinzugefügt werden
- 26. Verbesserte Spiellast auf Unity mit Big Data
- 27. Klassen & Aktivitäten in Android
- 28. Debuggen auf Android Studio
- 29. NoClassDefFoundError auf Android Studio
- 30. Collaborating auf Android Studio-Projekt git mit