«

如何在Unity中引入Android工程,再打包成apk

时间:2024-3-2 18:22     作者:韩俊     分类: Android


1、Unity下C#与Java交互的代码:

using (AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
 {
       using (AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity")) 
       {
                jo.Call(method, args);
       }
}
a)、using的用法是定义一个范围,在范围结束时回收这段范围内所申请的内存;

b)、method就是java代码中的方法,args就是传给method的参数

PS:

Unity与java的交互除了可以使用AndroidJavaObject的对象调用call来访问以外,还可以使用AndroidJavaClass的对象调用callStatic函数来调用java中静态类的静态方法

using (AndroidJavaClass jc_info = new AndroidJavaClass(className))
{
     jc_info.CallStatic(staticMethodName, param);
}

2、Java下与Unity的交互代码:

UnityPlayer.UnitySendMessage("Main Camera", "show", edit.getText().toString());

a)、要使用UnitySendMessage这个静态方法需要往Android工程引入一个jar包,包的所在路径为Unity的安装目录:EditorDataPlaybackEnginesandroidplayerdevelopmentbinclasses.jar,将这个包拷贝到Android工程的libs目录下就可以在代码中通过import com.unity3d.player.UnityPlayerActivity;和import com.unity3d.player.UnityActivity;来引用了

b)、在java中是通过发送消息的方式与Unity交互的,UnitySendMessage的第一个参数就是Unity中在层级视图中的物体名字,第二个参数就是这个物体上挂的脚本上的一个函数,第三个参数就是传给Unity上函数的参数

3、在Unity中打包:

a)、将Android的工程Build一下,然后将Android工程下的src右键->Export->java->JAR file,将其源码打包成Jar包以便在Unity中引用

b)、回到Unity中,在Porject视图中创建文件夹Plugins,在Plugins下再创建Android文件夹,在Android下再创建bin和res两个文件夹

c)、将前面Android编译好jar包拷贝到Unity中的Plugins->Android->bin目录下

d)、将前面Android工程的在bin目录下AndroidManifest拷贝到Unity中的Plugins->Android目录下

e)、将前面Android工程中的res下的所有文件拷贝到Unity中的Plugins->Android->res目录下

f)、准备工作完成,准备打包,在Unity中File->Build Settings...->选中你要的场景->PlatForm设置为Android->点击Player Settings...->other setting->把bundle Indentifier*设置成与安卓的src的包名一样(如com.jun)

g)、点击Bulid就可以了。






标签: android

热门推荐