在开发安卓软件的时候,Unity和Android之间的交互是非常有必要的,使用Android调用Unity相对来说比较简单,然而用Unity调用Android却是非常麻烦的事,这对于一个Android小白的我来说却是无比头大的,在网上我们能找到各种各样的Unity调用Android的方法,不过大同小异,无非都是AndroidStudio导出.jar/.aar包,看起来都没有什么问题,然而,自己照搬过来却总是花样报错。本人也是被受AndroidStudio的折磨。(Unity2019以后与Android的交互,从此告别.aar和.jar)
优势:
1.不要需要导包,告别.aar和.jar
2.打包不需要大量设置,名字随便填
3.方法简单易懂
准备:Unity2019及以后版本的Unity
废话不多说,我们直接上方法
一,Unity与Android的交互
1.新建两个txt文件,将它们分别命名为MainActivity和Androidmanifest
2. 将下面的脚本代码复制到txt文本中去
MainActivity
package com.pub.dou;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.widget.Toast;
import com.unity3d.player.UnityPlayer;
import com.unity3d.player.UnityPlayerActivity;
public class MainActivity extends UnityPlayerActivity {
public String MName="Dou";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
//让Unity调用的方法
public String CallAndroid()
{
String Msg="HELLO UNITY, This is android";
Toast.makeText(MainActivity.this, Msg, Toast.LENGTH_SHORT).show();
return Msg;
}
//让Unity调用的方法
public void ShowToast(Context context, String Msg)
{
Toast.makeText(context, Msg, Toast.LENGTH_SHORT).show();
}
public void ShowName()
{
//调用Unity上物体Canvas上的callunity方法,MName是参数
UnityPlayer.UnitySendMessage("Canvas", "callunity",MName);
}
//需要调用什么都在这个MainActivity类里面写就好了,一些需要引用的别忘了在前面添加
}
package的名字可以自己随便写一个自己喜欢的就行,只要在Androidmanifest中做出相应的修改进行,不过不建议修改,因为这不会对自己Build apk设置有任何影响的。
Androidmanifest
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.pub.dou">
<application android:allowBackup="true" android:label="@string/app_name" android:supportsRtl="true">
<activity android:name="com.pub.dou.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
// 调用Unity
<meta-data android:name="unityplayer.UnityActivity" android:value="true"/>
</activity>
</application>
// 需要的权限,也可以Unity上UnityEngine.Android里面弄
<uses-permission android:name&#