如何将Unity工程打包成apk
2015-06-05 11:58
441 查看
1、Unity下C#与Java交互的代码:
b)、method就是java代码中的方法,args就是传给method的参数
PS:
Unity与java的交互除了可以使用AndroidJavaObject的对象调用call来访问以外,还可以使用AndroidJavaClass的对象调用callStatic函数来调用java中静态类的静态方法
2、Java下与Unity的交互代码:
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的原因是方便以后升级或者改图。
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的原因是方便以后升级或者改图。
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法