将android项目移植到unity上,可实现android与unity的通信。本文主要介绍如何将android studio上的项目移植到unity上,并且实现android中activity与unity的通信。
1. 首先在android studio建一个项目,然后将unity中的接口包放到项目中。
接口包在unity的安装位置这里:
Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes
将clsses.jar放入android studio项目的app/libs中。
2. 修改MainActivity中的内容。
将MainActivity extends AppCompatActivity修改为MainActivity extends UnityPlayerActivity,去除setContentView(R.layout.activity_main),因为启动游戏的时候无需再显示出android本身的界面,只需要游戏界面即可。
同时需要注释掉import android.support.v7.app.AppCompatActivity;不然会报错。
3. 配置AndroidManifest.xml。
添加 <meta-data android:name="unityplayer.UnityActivity" android:value="true" />
4. 修改styles.xml的配置。
Styles.xml在\app\src\main\res\values\styles.xml,将styles.xml中的内容写为
这是去掉对V7包的引用,否则在build的时候会报错。
5. 修改app下的build.gradle文件。
将apply plugin: 'com.android.application '修改为apply plugin:’com.android.library’;
将applicationId "com.example.a14750.gametest"注释;
删除compile 'com.android.support:appcompat-v7:25.0.0'
testCompile 'junit:junit:4.12'。
6. 实现android与unity的通信。
具体处理机制是这样的:首先会在android中写一个sendmessage()的方法,在unity中会调用写在activity中调用sendmessage()方法的方法,在unity中会写一个接收message的方法,这时这个接收方法中会接收到android发出的消息。
这是写在android studio中MainActivity中的一个方法:
这是写在unity中调用test()的方法语句:
这是写在unity中接收android发出消息的方法:
这样就可以实现通信了。
7. Build apk提取出关键文件。
进行sync now然后进行build apk,完成之后取出\app\build\outputs\aar\app-debug.aar文件和\app\src\main\AndroidManifest.xml文件。用压缩软件打开aarapp-debug.aar文件并删除掉目录下的 \libs\classes.jar文件,不然移植到unity中因为重复会报错。
8. 打开unity项目,在Assets目录下新建Plugins\Android\,将取出的app-debug.aar和AndroidManifest.xml文件放入该目录下。
9. 配置unity中的必要参数。
在building settings中的Player Settings修改Bundle Indentifier为Android工程中AndroidManifest.xml下package的名称,修改Minimum API Level为Android工程对应的API级别,一定要保持一致。
(如果我的前后不一致请忽略,可能之后的项目给改回来了)
网友评论