unity与Android交互
unity打包成安卓工程中的JAVA代码
public class UnityPlayerActivity extends Activity { //Unity中调用此函数 public int Max(int a,int b) { if(a > b) return a; return b; } //Android向Unity发送消息,第一个参数Test,表示Unity中所挂脚本的组件名称, 第二个是 Unity脚本中的函数名,第三个传入的是参数 UnityPlayer.UnitySendMessage( "Test","CALLBACK_Android", 100); }
Unity工程中C#代码
1 using UnityEngine; 2 using System.Collections; 3 4 public class WCA_Test : MonoBehaviour { 5 6 7 AndroidJavaObject javaObject = null; 8 //触发该函数 9 public void OnMax() 10 {
//unity中调用安卓中的函数,第一个参数是安卓中的函数名称,第二个是传入的两个参数 11 int m = javaObject.Call<int>("Max", new object[] { 100, 200}); 12 Debug.Log(m); 13 } 14 //接收安卓中回调的函数名称 15 public void CALLBACK_Android(string strCode) 16 { 17 Debuger.Log("安卓返回的结果:" + nCode); 18 } 19 20 void Awake() 21 { 22 AndroidJavaClass javaClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); 23 javaObject = javaClass.GetStatic<AndroidJavaObject>("currentActivity"); 24 } 25 26 // Use this for initialization 27 void Start () {
//组件名称 28 gameObject.name = "Test"; 29 } 30 31 // Update is called once per frame 32 void Update () { 33 34 } 35 } 36
Unity3d师兄