随着智能硬件的逐步发展,Unity上的通用蓝牙需求越来越多。近期我也完成了一个Unity上的通用蓝牙插件。
但本次仅介绍在这个项目中的用到的Unity和Android通信与交互部分,U3D的蓝牙有需求可以私聊讨论:P。
好了现在咱们逐步讲解U3D是如何调用Android原生Java代码的:
1、第一步建立一个Android工程(有点废话)
在例子工程中为了便于演示,我只建立了两个Activity:MainActivity(下面简称mAct)和NextActivity(下面简称nAct)。
mAct原始代码:
package com.clover.unityplugforblog;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button_jump = (Button) findViewById(R.id.button_jump);
button_jump.setOnClickListener(MainActivity.this);
}
@Override
public void onClick(View v){
jump_view();
}
void jump_view()
{
Intent inent = new Intent(MainActivity.this, NextActivity.class);
startActivity(inent);
}
}
例子工程mAct就是显示一个按键然后实现Activity的跳转。nAct就不贴了,仅仅是显示一个空界面。好了,现在开始改造这个工程,
让其输出一个U3D可用的.jar库文件。
2、 在Android工程中添加U3D提供的class.jar
我是在Mac上用的Unity版本是5.4.3,因此class.jar文件位置是:
/Applications/Unity/PlaybackEngines/AndroidPlayer/Variations/mono/Release/Classes
请根据您的本机系统对这个地址进行修改。我们使用class.jar的目的是有些Unity调用class需要继承UnityPlayerActivity,所以先对其添加。
将class.jar拷贝到工程的如