您的位置:首页 > 移动开发 > Unity3D

如何将Unity工程打包成apk

2015-06-05 11:58 441 查看
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的安装目录:\Editor\Data\PlaybackEngines\androidplayer\development\bin\classes.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就可以了。

=======================2015年6月25日添加==========================

4、在Eclipse中打包:

上面讲过了在Unity中打包Android工程,现在我们来看看怎么在Eclipse中打包Unity工程

a)、在Unity中,首先将Unity工程导出成Google Android Project,由于Unity中的Resources资源将分开打包成AssetBundles,所以在导出成Google
Android Project时就不把Resources下的资源导进去了,因此在导出之前要把Resources文件夹换个名字(例如:_Resources),这样我们在Export时就不会把Resources下的资源导出了。改完名字之后就可以导出了,做法如下:

在Unity中File->Build Settings...->选中你要的场景->PlatForm设置为Android->点击Player Settings...->other setting->把bundle Indentifier*设置成与安卓的src的包名一样(如com.jun)->回到Build
Setting....界面->勾选Google Android Project->Export

b)、将导出的文件夹下的assets\bin下的所有内容复制到Eclipse工程中的assets\bin目录下

c)、将Unity中的Resources文件夹名字改回来,然后将此目录下的资源打包成AssetBundles,保存在一个目录下。

d)、在Eclipse中assets下创建一个文件夹AssetBundles,将上面生成的AssetBundles的文件全部拷贝到
     

 
    Eclipse/assets/AssetBundles.

e)、在Eclipse中,File->Export->Android->Export
Android Application就OK了。

ps:Resources分开打包成AssetBundles的原因是方便以后升级或者改图。

     
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  unity c# java android 安卓