最近一个项目包含三个模块
打包成aar和unity交互时unity报错
no non-static method with name='UnityCallAndroid'
多次尝试无果,但是新建项目和unity交互没有问题,就想到在此项目里新建一个模块,unity和这个模块交互再调用其他模块的方法,尝试之后成功
package com.sound.anzhuoceshi;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Toast;
import com.baidu.idl.face.example.MainActivity;
import com.unity3d.player.UnityPlayer;
import com.unity3d.player.UnityPlayerActivity;
public class UnityMainAcivity extends UnityPlayerActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
//unity调用Android
public void UnityCallAndroid () {
Toast.makeText(this,"unity调用android成功", Toast.LENGTH_LONG).show();
// 直接跳到要调用的Activity MainActivity是在app模块中的
startActivity(new Intent(this,MainActivity.class));
AndroidCallUnity();
}
//android调用unity
public void AndroidCallUnity () {
//第1个参数为Unity场景中用于接收android消息的对象名称
//第2个参数为对象上的脚本的一个成员方法名称(脚本名称不限制)
//第3个参数为unity方法的参数
UnityPlayer.UnitySendMessage("Text", "fromeAndroid", "安卓给你发消息了.");
}
}
要想实现调用其他模块方法要在这里添加上
最后把项目过程要用到的模块全都打aar包导入unity,然后把和unity交互的模块的AndroidManifest.xml
也放入unity