J'essaye de créer un plugin Android pour mon jeu Unity. J'ai regardé beaucoup de tutoriels (la plupart d'entre eux sont obsolètes en fonction de l'éclipse) et j'ai également lu la documentation. J'utilise Unity 2019.3.0f6. Je souhaite étendre mon activité principale dans le projet Android Studio avec UnityPlayerActivity
Je ne comprends pas ce que signifient les lignes de fin " Locate the file, and add classes.jar to the classpath Unity uses to compile the new Activity. Compile your Activity source file and package it into a JAR or AAR package, then copy it into your Project folder
"
Je comprends qu'UnityPlayerActivity n'existe pas dans le class.jar à PlaybackEngines / AndroidPlayer / Variations / mono ou il2cpp / Development ou Release / Classes / et je ne peux donc pas importer com.unity3d.player.UnityPlayerActivity; Je ne peux importer que UnityPlayer et IUnityPlayerLifecycleEvents. Je suis également intéressé de comprendre ce que sont la classe UnityPlayer et IUnityPlayerLifecycleEvents dans ce contexte.
Mais UnityPlayerActivity.java est disponible sur C: \ Program Files \ Unity \ Editor \ Data \ PlaybackEngines \ AndroidPlayer \ src \ com \ unity3d \ player
Comment puis-je l'ajouter dans la bibliothèque Unity3d ou classes.jar. Ou même l'importer pour étendre mon activité principale. Je ne comprends pas ce que je fais de mal ici. J'utilise Android Studio, même si je suis nouveau dans ce domaine.
4 Réponses :
Ne vous inquiétez pas, créer des plugins Android pour l'unité pourrait être un peu compliqué au début, encore plus si vous n'avez aucune expérience avec Android!
Quelques conseils:
Assets/Plugins/Android
(c'est important, j'ai lutté pour cette stupidité ici )classes.jar
dans le projet AndroidStudio dans app/libs
.Android/libs
Pour créer des plugins sur AndroidStudio, vous devez créer une bibliothèque (cette étape consiste à la créer à partir d'une activité):
.implementation
par .library
Pour recompiler le plugin, procédez comme suit:
Reconstruire la solution AndroidStudio
Accédez à la solution AndroidStudio ... app\build\outputs\aar
récupérez le fichier .aar
.aar
en .zip
ou .rar
Ouvrez le fichier modifié et extrayez 2 éléments:
classes.jar
(ceci est un autre classes.jar, pas le même stocké dans app / libs dans votre projet AndroidStudio)AndroidManifest.xml
Copiez ces fichiers dans le projet Unity dans Assets/Plugins/Android
(rappelez-vous, la structure du répertoire du projet est importante!)
Vous pouvez télécharger le fichier classes.jar
(le premier) depuis mon Utility_Repo ou depuis le chemin que vous lui nommez D:\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Development\Classes\classes.jar
.
Je comprends ce que vous expliquez mais ma question est de savoir pourquoi la classe UnityPlayerActivity n'est pas disponible directement dans mes classes.jar ... / PlaybackEngines / AndroidPlayer / Variations / mono / Developmen t / Classes /
Je viens de lire aussi cet article. Ça a l'air bien eppz.eu/blog/unity-android-plugin-tutorial-1
Ce que je veux réaliser, c'est ouvrir une activité Android existante, implémenter spécifiquement ce projet en tant que plugin github.com/WhatsApp/stickers afin que je puisse donner à mon utilisateur du jeu Unity des autocollants WhatsApp au moment de l'exécution. Je sais que cela semble très ambitieux, mais pouvez-vous me donner une idée de la façon dont je devrais aborder mon objectif.
Il existe un très bon tutoriel et une vidéo youtube d'accompagnement sur la création de plugins Android natifs et l'incorporation dans Unity 3D.
http://www.cwgtech.com/using-android-webview-to-display-a-webpage-on-top-of-the-unity-app-view/
Je me suis retrouvé dans la même situation, et après quelques recherches, j'ai trouvé que vous devriez prendre cette classe ailleurs et la copier simplement dans votre projet. Sur ma machine, la classe est dans "...path-to-unity-installation...\Editor\Data\PlaybackEngines\AndroidPlayer\Source\com\unity3d\player"
.
Je pense que la nouvelle approche qui UnityPlayerActivity
utilisation de UnityPlayerActivity
mérite totalement l'attention, cependant.
Vous pouvez maintenant créer votre CustomActivity étend de UnityPlayerActivity. et intégrez * .aar.