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

 

posted @ 2016-03-25 11:56  IT1990  阅读(470)  评论(0编辑  收藏  举报