À¯´ÏƼ ¾Èµå·ÎÀ̵å Ç÷¯±×Àο¡¼´Â À¯´ÏƼ¿¡¼ ¾Èµå·ÎÀ̵å·Î
È£ÃâÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æ º¸¾Ò´Ù. À̹ø Àå¿¡¼´Â ¾Èµå·ÎÀ̵忡¼ À¯´ÏƼ ½ºÅ©¸³Æ®¸¦ È£Ãâ ÇÏ´Â ¹æ¹ý¿¡ ´ëÇؼ ¾Ë¾Æº¸ÀÚ. ½ÇÇà ¼ø¼´Â ´ÙÀ½°ú °°´Ù. À¯´ÏƼ¿¡¼ ¾Èµå·ÎÀ̵å È£Ãâ --> ¾Èµå·ÎÀ̵忡¼ À¯´ÏƼ È£Ãâ --> À¯´ÏƼ ÇÔ¼ö ½ÇÇà ¾Èµå·ÎÀ̵忡¼´Â UnityPlayer.UnitySendMessage ¸í·ÉÀ» »ç¿ëÇÏ¿© À¯´ÏƼ ½ºÅ©¸³Æ®¸¦ È£ÃâÇÑ´Ù. ¾Èµå·ÎÀ̵忡¼ ÇؾßÇÒ ÀÛ¾÷¿¡ ´ëÇؼ ¸ÕÀú ¾Ë¾Æº¸ÀÚ. ¾Èµå·ÎÀ̵忡¼ UnityPlayer.UnitySendMessage ¸í·É¾î »ç¿ëÇϱâ
¾ÕÀåÀÇ À¯´ÏƼ ¾Èµå·ÎÀ̵å Ç÷¯±×ÀÎÀÇ ³»¿ë¿¡ Ãß°¡ÇÏ¿© °è¼Ó ÀÛ¾÷ÇÑ´Ù. 1. ¾Èµå·ÎÀ̵å ÇÁ·ÎÁ§Æ® À̸§°ú À¯´ÏƼ ¹øµéÀ̸§À» µ¿ÀÏÇÏ°Ô ¸¸µç´Ù. ¾Èµå·ÎÀ̵å ÇÁ·ÎÁ§Æ® À̸§°ú À¯´ÏƼ ¹øµéÀ̸§À» µ¿ÀÏÇÏ°Ô ÇØ¾ß UnityPlayer¸¦ »ó¼ÓÇÑ Ç÷¯±×ÀÎÀ» Á¤»óÀûÀ¸·Î ·Îµù ÇÒ¼ö ÀÖ´Ù. AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); < ¾Èµå·ÎÀ̵å ÇÁ·ÎÁ§Æ® > < À¯´ÏƼ ¹øµé À̸§ > 2. classes.jar ÆÄÀÏ Ãß°¡ ¼Ó¼ºÃ¢À» ¿¾î¼ "Java Build Path"¸¦ ¼±ÅÃÇÑ´Ù. Libraries ÅÇ¿¡¼ "Add External JARs..." ¹öÆ°À» Ŭ¸¯ÇÑ´Ù. C:\Program Files\Unity\Editor\Data\PlaybackEngines\androidplayer\release\bin Æú´õ¿¡¼ "classes.jar" ÆÄÀÏÀ» Ãß°¡ÇÑ´Ù. Apply ¹öÆ°À» ´·¯¼ Àû¿ëÇÑ ÈÄ¿¡ OK ¹öÆ°À» Ŭ¸¯ÇÑ´Ù. 3. classes.jar ÀÇÁ¸¼º ¼³Á¤ ¼Ó¼ºÃ¢¿¡¼ "Order and Export" ÅÇÀ» ¼±ÅÃÇÑ´Ù. classes.jar¸¦ üũÇÑ´Ù. Apply ¹öÆ°À» ´·¯ Àû¿ëÇÑ ´ÙÀ½ OK ¹öÆ°À» Ŭ¸¯ÇÏ¿© ¼Ó¼ºÃ¢À» ´Ý´Â´Ù. 4. MainActivity.java ÆÄÀÏÀ» ¼öÁ¤ÇÑ´Ù. ( UnitySendMessage ¸í·É¾î¸¦ »ç¿ë ÇÒ·Á¸é À¯´ÏƼÀÇ classes.jar ÆÄÀÏÀ» Ãß°¡ ÇØ¾ß ÇÑ´Ù. ) Activity¸¦ »ó¼ÓÇÏ´ø°ÍÀ» UnityPlayerActivity »ó¼ÓÀ¸·Î ¹Ù²Ù¸é µÈ´Ù. public class MainActivity extends UnityPlayerActivity { //public class MainActivity extends Activity {
MainActivity.javaÀÇ CallByUnity()¿¡¼ UnitySendMessage¸¦ È£ÃâÇÏ°í ÀÖ´Ù. import com.unity3d.player.UnityPlayer;
public static void UnitySendMessage(String obj, String method, String msg);
UnitySendMessage·Î obj °ÔÀÓ¿ÀºêÁ§Æ®¿¡ ÀÖ´Â ½ºÅ©¸³Æ® ÄÄÆ÷³ÍÆ® method¸¦ È£ÃâÇÑ´Ù.
MainActivity.java¿¡¼¸¸ UnityPlayerActivity¸¦ »ó¼ÓÇÏ¸é ´Ù¸¥ Ŭ·¡½º¿¡¼´Â UnitySendMessage¸¦ ±×³É »ç¿ë ÇÒ¼ö ÀÖ´Ù.
Test.javaÀÇ CallByUnity()¿¡¼ UnitySendMessage¸¦ È£ÃâÇÏ°í ÀÖ´Ù. 5. Ç÷¯±×ÀÎ ÆÄÀÏ º¹»ç classes.jar ÆÄÀÏÀ» »ç¿ëÇϸé ÀͽºÆ÷Æ®µÈ plugin.jar ÆÄÀÏ°ú ÇÔ²² res Æú´õ, AndroidManifest.xml ÆÄÀϵéÀ» À¯´ÏƼ Assets/Plugins/Android Æú´õ¿¡ º¹»çÇÑ´Ù. ±âÁ¸¿¡ res, AndroidManifest.xml ÆÄÀÏÀÌ Á¸ÀçÇÑ´Ù¸é ¸ÓÁöÇØ¾ß ÇÑ´Ù. À¯´ÏƼ¿¡¼ ½ÇÇà1. Run MainActivity.java UnityPlayerActivity¸¦ »ó¼ÓÇÑ MainActivity¸¦ ½ÇÇàÇÒ·Á¸é ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù. AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject _activity = jc.GetStatic<AndroidJavaObject> ("currentActivity"); ÇöÀç È°¼ºÈµÈ Activity¸¦ ¾ò¾î¿Â´Ù. ½ÇÇàÀº ´ÙÀ½°ú °°´Ù. _activity.Call( "CallByUnity"); 2. Run Test.java À¯´ÏƼ ¾Èµå·ÎÀ̵å Ç÷¯±×ÀÎ ¿¡¼ ½ÇÇàÇÏ´ø Test ¿ÀºêÁ§Æ®ÀÇ »ç¿ë¹ý°ú °°´Ù. AndroidJavaObject javaObject = new AndroidJavaObject("com.example.plugin.Test"); javaObject.Call( "CallByUnity"); À¯´ÏƼ Test.cs ¼Ò½º´Â ´ÙÀ½°ú °°´Ù.
¾Èµå·ÎÀ̵å Plugin ÇÁ·ÎÁ§Æ® : Plugin.zip À¯´ÏƼ ÇÁ·ÎÁ§Æ® : PluginTest.zip ÂüÁ¶) https://docs.unity3d.com/kr/current/Manual/PluginsForAndroid.html |