Unity实现Android源生平台蓝牙BLE4.0数据传输(一)

Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。虽然是游戏引擎,不过现在目前还有很多用来做AR、VR、MR等内容.这样就少不了要与智能硬件配合交互,智能硬件由于便利性都大多数采用无线连接,无线连接主流一般是WIFI、Bluetooth蓝牙等方式.其中蓝牙BLE4.0以更省电、成本低、3毫秒低延迟、超长有效连接距离、AES-128加密等优势,取得大家的青睐,今天就来说说用Unity实现BLE4.0的数据传输.


Unity想要使用Android源生控件或者功能首先我们要来了AndroidJavaClass、AndroidJavaObject、AndroidJavaProxy三个类.

其中 AndroidJavaClass 一般调用静态函数跟获取静态字段使用这个,如果做过unity 跟android交互的朋友们应该见过这句

unityActivity = new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic<AndroidJavaObject>("currentActivity");

这里先new了一个 AndroidJavaClass对象然后调用GetStatic获取静态字段currentActivity

AndroidJavaObject 一般是Java实例对象用来调用Java的实例函数跟获取实例字段.

比如 我要建立一个Java的String对象

 AndroidJavaObject javaString = new AndroidJavaObject("java.lang.String", text); 

我再获取这个String对象的字符长度

var sLenth = javaString.Call<int>("length");

AndroidJavaProxy 是用来实现Java的接口interface. 这里引用Unity官方文档样例

private static DateTime selectedDate = DateTime.Now; 
 public class DateCallback : AndroidJavaProxy
 {
        public DateCallback() :base("android.app.DatePickerDialog$OnDateSetListener") { }

        void onDateSet(AndroidJavaObject view, int year, int monthOfYear, int dayOfMonth)
        {
            selectedDate = new DateTime(year, monthOfYear + 1, dayOfMonth);
        }
 }

实现接口以后Android 调用接口函数的时候会调用Unity端的接口实现.但函数名应该保持与Java接口函数一致.


其实能使用AndroidJavaClassAndroidJavaObject 类已经能使用Android 大部分功能.


下篇我们来写具体的BLE4.0蓝牙数据传输实现.

有问题的朋友可以关注我的微信订阅号给我留言

Unity实现Android源生平台蓝牙BLE4.0数据传输(二)

Unity实现Android源生平台蓝牙BLE4.0数据传输(三)

  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值