Unity端就不仔细说了,下面主要讲Unity打包出来在Android studio后的操作.
DEMO地址:Stringf/UnityAndroid3DModel (github.com)
Unity打包Android项目:
-
unityLibrary包build.gradle里dependencies "implementation" 改为"api"
-
创建一个activity去继承UnityPlayerActivity类在安卓APP中显示Unity场景。
简单通信:
Android调用Unity
//向unity发消息
UnityPlayer.UnitySendMessage(
"Main Camera", //gameobject的名字
"ChangeColor", //调用方法的名字
"" //参数智能传字符串,没有参数则传空字符串
);Unity调用Android
//通过该API来实例化java代码中对应的类
AndroidJavaObject jc = new AndroidJavaObject("com.xxx.xxx.UnityPlayer");
jo.Call("Test");//调用void Test()方法
jo.Call("Text1", msg);//调用string Test1(string str)方法
jo.Call("Text2", 1, 2);//调用int Test1(int x, int y)方法
结合C++调用
把Android端C++代码作为一个中转站,实现两边的数据引用于共享。
Android端C++方法:
//Unity中C#代码调用此方法
int addInt(int a, int b)
{
return a + b;
}在unity脚本中:
//引用C 、C++中的方法
[DllImport("cppso")]
private static extern int addInt(int a, int b);
void Start()
{ //调用方法中相加函数
i = addInt(1, 2);
}DllImport("cppso")
内写的是在 AS 的CmakeList.txt
里给so的命名。 - 参考资料:https://www.cnblogs.com/zhxmdefj/p/13273560.html
标签:调用,int,C++,Unity,Android,方法,3D From: https://www.cnblogs.com/Stringf/p/16835952.html