Unity和Android通信系列文章1——总览

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的方法 【Unity和Android通信系列文章1——总览】先记住这三句话,非常重要

//获得位于com.unity3d.player包下的UnityPlayer类 AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); //获取jc所代表的类下的currentActivity对象,就是Android那边继承UnityPlayerActivity的MainActivity AndroidJavaObject jo = jc.GetStatic("currentActivity"); //第一个参数是方法名,后面的参数是方法需要的参数 text.text = jo.Call("add", 5, 3).ToString();

    推荐阅读