如何在Unity中調用Android的JAVA代碼
1.首先要創建壹個android項目
2.因為項目需要使用Unity提供的接口,所以需要將接口classes.jar引入至當前工程但中。接口包的所在地,打開Finder->應用程序->Unity->點擊Unity圖標,鼠標右鍵選擇“顯示包內容”->Contents->PlaybackEngines->AndroidPlayer->bin->classes.jar
。接口包引入工程後,開始編寫JAVA代碼。
3.UnityTestActivity是主Activity,Unity程序壹起動就會調用這個Activity,它是在AndroidManifest.xml中配置的。它需要繼承UnityPlayerActivity,然而它就是剛剛我們引入的classes.jar包中提供的接口類。UnityTestActivity對外提供了兩個方法接口,StartActivity0(String
name) 方法與StartActivity1(String
name)方法,這兩個方法是在Unity中使用C#腳本調用的,意思是調用後程序將打開壹個新的Activity,參數name也是由C#腳本傳遞過來的,接著將傳遞的String參數繼續傳遞給新打開的Activity。
步驟閱讀
4
接下來就是設置xml文件和布局文件了。對於會android編程的同學就很熟悉了。
5
把寫好的java代碼發布成jar包。接下來就創建unity工程,Unity工程中文件夾的結構如下,Plugins->Android的名稱不能修改,必需保持壹致。接著把Eclipse中Android的工程文件拷貝至這裏,除了Android工程中的src文件夾,將其它文件夾全部拷貝至Plugins->Android文件夾中。最後在Plugins->Android文件夾中創建bin文件夾,然後將剛剛生成的.jar文件拷貝進來,jar的名稱可以隨便修改,但是jar包裏面必須是com->xys->妳的class文件,否則運行程序後提示找不到類文件。
步驟閱讀
6
接下來就是如何在C#中調用android的方法的代碼了。
加入如下代碼。
AndroidJavaClass jc = new
AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject jo =
jc.GetStatic<AndroidJavaObject>("currentActivity");
jo.Call("StartActivity0","第壹個Activity");
先得到AndroidJavaClass,然後得到AndroidjavaObject就是當前Activity的對象,也就是我們在上面創建的主UnityTestActivity.JAVA。拿到它的對象後調用jo.Call()參數1表示調用UnityTestActivity.JAVA類中的方法名稱,參數2表示該方法傳遞過去的參數。如下圖所示:“第壹個Activity”與“第二個Activit”就是我在C#中傳遞過去的字符串。
7
發布成android平臺apk