此種方法適用於:好比你要讓Android作一些事情,這些事用不到任何資源,在Android下用純代碼就能實現它,這樣就能夠在Android下寫好,將它封裝成一個方法,打成包按照下面的方式丟給Unity,在Unity下調用這個封裝好的方法就好了。code
前面的操做都同樣,新建工程,新建模塊,導入Unity的包。這裏導入Unity的包,若是僅僅是Unity調用Android的東西,也能夠不導入。對象
(1)新建一個Java類,給Unity使用blog
(2)打包,把Jar包複製到Unity的Android目錄下,咱們這裏沒有像第一次送Jar包那樣送了3個東西過去,也不像第二次送Arr包那樣送了2個東西過去,這裏就只是把Jar包複製過去。資源
(3)Unity調用這個方法it
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class Test : MonoBehaviour { public Text text; void Start () { // 這裏直接調用Android下類的方法,"com.lmx.lmx.simplelibrary.Test"是Android // 下定義的類的包名+類名,若是這個類有構造方法且須要傳參,也寫在後面 AndroidJavaObject jo = new AndroidJavaObject("com.lmx.lmx.simplelibrary.Test"); // 調用Android提供的Android方法 // 使用Call調用,<>表示有返回值,沒有返回值則不須要這個 text.text = jo.Call<int>("add", 2, 3).ToString(); } public void ChangeColor() { text.color = Color.red; } }
(4)打包,成功io
第二種用法,在Android下方法爲static的,那麼咱們能夠不生成類的對象,直接經過這個類來調用class
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class Test : MonoBehaviour { public Text text; void Start () { // 經過類直接調用Android的靜態方法 AndroidJavaClass jc = new AndroidJavaClass("com.lmx.lmx.simplelibrary.Test"); // 調用Android提供的Android方法 // 使用CallStatic調用,<>表示有返回值,沒有返回值則不須要這個 text.text = jc.CallStatic<int>("add", 2, 3).ToString(); } public void ChangeColor() { text.color = Color.red; } }