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