void Start() { Debug.Log("Bluetooth Initializing..."); BluetoothDeviceScript receiver = BluetoothLEHardwareInterface.Initialize(true, false, () => { Debug.Log("Bluetooth Initialized."); Debug.Log("Start scanning..."); BluetoothLEHardwareInterface.ScanForPeripheralsWithServices(null, null, (deviceID, name, rssi, adInfo) => { // deviceID: 安卓上是 MAC 地址,iOS 上是某一串不明代码 // adInfo: 广播数据,第 2-7 字节是 MAC 地址 if (("R-ARCHER" == name) || ("GU-ARCHER" == name)) { Debug.Log("Found: " + name); //BluetoothLEHardwareInterface.StopScan(); GeekplayDevice device = GetDeviceScript(name); device.SetAppInfo("", "", "", ""); device.m_deviceID = deviceID; device.m_MAC = deviceID.Replace(":", ""); deviceList.Add(device); if (typeof(GeekplayHunter) == device.GetType()) { ((GeekplayHunter)device).Initialize(BowDraw, BowShoot); } else if (typeof(GeekplayDragonbone) == device.GetType()) { ((GeekplayDragonbone)device).Initialize(BowDraw, BowShoot); } } }); }, null); }
void RegisterCallbacks(GeekplayDevice _device) { Debug.Log(_device.GetType()); if (typeof(GeekplayElite) == _device.GetType()) { ((GeekplayElite)_device).Initialize(GunShoot); } else if (typeof(GeekplayPoseidon) == _device.GetType()) { ((GeekplayPoseidon)_device).Initialize(GunShoot, GunPump); } else if (typeof(GeekplayHunter) == _device.GetType()) { ((GeekplayHunter)_device).Initialize(BowDraw, BowShoot, ButtonPressed, ButtonReleased); } else if (typeof(GeekplayDragonbone) == _device.GetType()) { ((GeekplayDragonbone)_device).Initialize(BowDraw, BowShoot); } else if (typeof(GeekplayMR_Camera) == _device.GetType()) { ((GeekplayMR_Camera)_device).Initialize(m_camera, new Vector3(0, 0, 0)); } m_device = _device; }
void GunShoot() { Debug.Log("Gun Shoot: " + Time.time); if (typeof(GeekplayPoseidon) == m_device.GetType()) { GeekplayPoseidon gun = (GeekplayPoseidon)m_device; gun.MotorRun(0.3f); gun.IR_SendMsg(0xCC); Debug.Log("X: " + gun.GetState().joyStickX); Debug.Log("Y: " + gun.GetState().joyStickY); } }