0.所用软件环境
android:Android Studio 3.0.1
Unity:Unity 2017.3.0
1.为什么需要Unity和Android通信?
当需要调用android端原生功能时,如:网络检测,断网之后,连网时,立即执行有网的操作;某些广告的sdk没有提供unity的plugin。
unity和android通信,就可以解决这些问题。
2.Unity和Android通信的方法简介
方法一:.unity这边导出android工程,然后在android这边扩展UnityPlayerActivity。(这个需要对android开发比较了解)
方法二:在android中写好方法,然后供Unity调用,提供jar
android可以提供jar包,(这个官方不推荐,这个没法打包资源,操作简单)
方法三:在android中写好方法,然后供Unity调用,提供aar
android可以提供aar包,(官方推荐,可以打包资源,操作稍微复杂点)
3.C#调用Android的方法
先记住这三句话,非常重要
//获得位于com.unity3d.player包下的UnityPlayer类
AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
//获取jc所代表的类下的currentActivity对象,就是Android那边继承UnityPlayerActivity的MainActivity
AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
//第一个参数是方法名,后面的参数是方法需要的参数
text.text = jo.Call<int>("add", 5, 3).ToString();
网友评论