Unity3d与Android的相互调用
16lz
2021-01-26
Android Sudio V3.5
Unity V5.6.7
1,用AS创建空工程UnityAndroidTest,
2,File-->New---> Module AndroidLib
3,添加空 Activity
4,删除不必要的信息
5,导入Unity 的classes.jar到libs文件下,鼠标右键,Add As Lib
6,编写Android端的代码,供Unity调用
用上图内容,替换下图内容
-
import com.unity3d.player.UnityPlayer;import com.unity3d.player.UnityPlayerActivity;public class MainActivity extends UnityPlayerActivity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); }//Unity调用Android的方法 public String Show(){ return "Hello World Android()"; }//Android调用Unity的方法 public void CallUnityMethod(String str){ //Canvas是画布,挂载unity脚本的对象,UnityMethod是Unity中的方法 UnityPlayer.UnitySendMessage("Canvas","UnityMethod",str); }}
7,打包jar,导入到unity中,Build--->Make Module "mylibrary"
8,编写Unity端代码,调用Android方法,场景中,一个Text(显示Unity调用Android内容),一个Button(Android调用Unity方法)
- private AndroidJavaObject activity=null;
- Text text;
- AndroidJavaClass jc;
- Button AButton;
- void Start () {
- text = transform.Find("Text").GetComponent
(); - text.text = "1";
- AButton = transform.Find("AButton").GetComponent
- AButton.onClick.AddListener(OnAButtonClick);
- jc= new AndroidJavaClass("com.unity3d.player.UnityPlayer");
- activity = jc.GetStatic("currentActivity");
- text.text = activity.Call
("Show");//调用Android的Show()方法 - }
- public void OnAButtonClick()
- {
- activity.Call("CallUnityMethod", "CallUnity");//调用 Android调用Unity的方法
- }
- public void UnityMethod (string str) {//Android调用Unity的方法
- text.text = str;
- Debug.Log("android called UnityMethod : "+str);
- }
9,打包,package Name和package内容一致
10,真机运行,成功调用Android的Show方法
点击button,运行Android调用Unity方法
更多相关文章
- android studio快捷键集合
- 关于android WebViewClient 的方法解释
- Android-你所不知道的context
- Android进程通信-AIDL
- google Android编译本地C++程序方法
- android 解锁,锁屏流程
- 【Android】原生安装和卸载应用
- ButterKnife 使用教程
- Android(安卓)View框架总结(九)KeyEvent事件分发机制