最近项目需要Android与Unity进行交互工作,下面谈谈自己的经验,希望对大家有所帮助.
一.Unity向Android主动交互
比如在Unity中我们需要调用某个函数,代码如下:
//例子
AndroidJavaClass jc = new AndroidJavaClass ("com.unity3d.player.UnityPlayer");
AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject> ("currentActivity");
jo.Call ("login","");
//当然也可以如下:调用android静态函数
new AndroidJavaClass("包名").CallStatic("函数名", new object[0]);
这样我们就可以在Unity中调用Android的函数了,也可以传参,这里我只做个引子,大家可以以此作为扩展.
二.Android向Unity主动交互
这里同样以.UnitySendMessage作为引子向大家介绍.
//这里要说明一下,UnitySendMessage的第一个参数是unity控件的名字,
// 第二个参数是方法名
//第三个参数是要传递的参数而且只能传递一个参数
->对象.UnitySendMessage("", "", "");
需要注意的是:
1.第一个参数是unity控件的名字,我们有时候不好找怎么办,这里可以提供一个小技巧
//正如Android一样,Unity同样有自己的生命周期,在这里我们可以给该控件命名
//方便我们进行交互,需要注意的是有些类可能无效,要具体分析
void Start () {
this.name = "";
}
2.第三个参数只能传递一个参数,不过我们可以灵活点,可以传个串数据,在Unity中做一些分割工作.