Android集成Unity到App中
2017-04-19 17:04
417 查看
参考(android与unity交互): http://blog.csdn.net/crazy1235/article/details/46733221
项目中需要将unity作为app一部分,这里主要记录一下unity集成到android项目中(交互上面链接写得很清楚了)。
![](http://img.blog.csdn.net/20170418115119982?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzExMTY2ODM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
unity提供的android工程是Eclipse结构的,我是先在Eclipse中导入工程运行确认没问题然后将其导入我的项目中。
可以选择将其作为一个model依赖到项目中或者copy到主model下。方便更快测试,我是直接copy的。
将assets、lib、res 、src下java类文件copy到对应目录下;
将AndroidManifest.xml中的权限申请copy过去,将注册的activity copy过去,删除里面的intent-filter部分。
proguard-unity.txt里面是混淆,将其copy到项目中proguard.cfg文件里。
在需要跳转 地方增加点击跳转事件就可以了。src目录下主要是三个Acitivity :
- UnityPlayerActivity
- UnityPlayerProxyActivity -启动UnityPlayerActivity
- UnityPlayerNativeActivity -extends UnityPlayerActivity
所以新建一个activity[UnityActivity]继承UnityPlayerActivity,在里面写跟unity约定好的一些互相调用的方法,在AndroidManefist中 UnityPlayerActivity替换成其子类,不要忘记更改跳转intent,就可以了。
Android调用unity方法:
UnityPlayer.UnitySendMessage(“gameScene”, “function”, “params”);
unity调用Android方法:
按照约定规则(修饰符、参数类型,返回类型)写就好了。(unity调用就不说了)。
集成中遇到的问题:
Error Unable to initialize the Unity Engine.
检查是否正确将unity提供文件(lib、asset下)全部引入项目里。
编译时 java.lang.OutOfMemoryError: Java heap space
增加或修改 项目下gralde.properties : org.gradle.jvmargs=-Xmx4096m 4096不行就增大。
unity调用android方法退出游戏,结果整个应用都退出了
在注册Activity中增加 process属性 eg: android:process=”:UnityActivity” 使其不在一个进程中。
运行时可能会报找不到你提供的类(与unity方约定好的调用类路径在这之前是打了个jar包给unity方的,jar包其实是unity提供的三个类和自己新建的UnityActivity 继承了UnityPlayerActivity,在里面写了unity调用app端的方法,用于测试。)
记得一定要将UnityActivity放在你给unity路径下,否则unity找不到类。
PS:最后还是将unity单独作为一个model放到项目中,方便以后维护、更改。
项目中需要将unity作为app一部分,这里主要记录一下unity集成到android项目中(交互上面链接写得很清楚了)。
unity提供的android工程是Eclipse结构的,我是先在Eclipse中导入工程运行确认没问题然后将其导入我的项目中。
可以选择将其作为一个model依赖到项目中或者copy到主model下。方便更快测试,我是直接copy的。
将assets、lib、res 、src下java类文件copy到对应目录下;
将AndroidManifest.xml中的权限申请copy过去,将注册的activity copy过去,删除里面的intent-filter部分。
proguard-unity.txt里面是混淆,将其copy到项目中proguard.cfg文件里。
在需要跳转 地方增加点击跳转事件就可以了。src目录下主要是三个Acitivity :
- UnityPlayerActivity
- UnityPlayerProxyActivity -启动UnityPlayerActivity
- UnityPlayerNativeActivity -extends UnityPlayerActivity
所以新建一个activity[UnityActivity]继承UnityPlayerActivity,在里面写跟unity约定好的一些互相调用的方法,在AndroidManefist中 UnityPlayerActivity替换成其子类,不要忘记更改跳转intent,就可以了。
Android调用unity方法:
UnityPlayer.UnitySendMessage(“gameScene”, “function”, “params”);
unity调用Android方法:
按照约定规则(修饰符、参数类型,返回类型)写就好了。(unity调用就不说了)。
集成中遇到的问题:
Error Unable to initialize the Unity Engine.
检查是否正确将unity提供文件(lib、asset下)全部引入项目里。
编译时 java.lang.OutOfMemoryError: Java heap space
增加或修改 项目下gralde.properties : org.gradle.jvmargs=-Xmx4096m 4096不行就增大。
unity调用android方法退出游戏,结果整个应用都退出了
在注册Activity中增加 process属性 eg: android:process=”:UnityActivity” 使其不在一个进程中。
运行时可能会报找不到你提供的类(与unity方约定好的调用类路径在这之前是打了个jar包给unity方的,jar包其实是unity提供的三个类和自己新建的UnityActivity 继承了UnityPlayerActivity,在里面写了unity调用app端的方法,用于测试。)
记得一定要将UnityActivity放在你给unity路径下,否则unity找不到类。
PS:最后还是将unity单独作为一个model放到项目中,方便以后维护、更改。
相关文章推荐
- android下判断一个应用app是否是系统rom集成的方法
- Android app 集成支付宝
- android app 集成支付宝
- Android App集成支付宝
- unity android 集成指南
- android app(apk文件) 反编译 工具 右键集成
- android下判断一个应用app是否是系统rom集成的方法
- android app 集成支付宝
- Android App集成支付宝
- Android APP 集成支付宝
- 集成JNI相关.so库到android app中
- android app 集成支付宝
- Unity和android集成操作步骤
- unity android 集成指南
- Android学习系列---App集成支付宝
- Android App集成支付宝
- Android App集成支付宝
- (android 功能代码) android app集成支付宝
- Android学习之 移动应用<App>微信支付集成小结
- Android学习系列(28)--App集成支付宝