Giter VIP home page Giter VIP logo

blesock-unity-plugin's Introduction

blesock-unity-plugin

【概要】

BluetoothLEを使用してiOS/Android間でアドホック通信を行うためのUnityプラグインです。

【特徴】

スマートフォンに搭載されているBluetoothLEを使用して通信を行うので、 WiFiやインターネットが利用できない環境でもアドホック通信を行うことができます。

通信やプレイヤーの管理等はプラグイン側で行われるため、本当に簡単なコードを書くだけで使用できます。 シンプルなC#クラスとして実装されており、プラットフォームの差異を気にする必要はありません。

【動作環境】

開発および動作環境 バージョン 補足
Unity 2018.2 以降 Javaソースコードを.jar化すれば以前のバージョンでも動作します
.NET Framework 3.5 および 4.X どちらでも動作します                    
iOS 9 以降
Android 5 以降
Windows 10 以降 Unityエディタ上のみ
MacOS - 未対応

【注意事項】

iOSビルド

Bluetoothを使用するため、PlayerSettings内のLocationUsageDescriptionの設定が必須です。

またinfo.plistおよびXCodeプロジェクトの設定が必要ですが、デフォルトでは Assets/Plugins/Editor/BleSockXcodePostProcessBuild.cs により自動設定されますので 必要に応じ編集してください。

Androidビルド

ランタイムで必要な権限の設定などは Assets/Plugins/Android/AndroidManifest.xml 内に記述されていますので、必要に応じ編集してください。

なおAndroid 6以降では別途、位置情報の取得権限が必要です。 これはデフォルトではUnityにより自動で要求されるため、明示的に無効化しない限りは対応する必要はありません。

Android環境においては同一端末上で、同時に複数のホスト(ペリフェラル)を起動した場合の動作は保証されません。 (ペリフェラルを起動する際に古いペリフェラルのサービスも更新されてしまい、通信が途絶してしまうため)

Windows版Unityエディタ

Unityエディタの動作環境がWindows10でかつBluetoothアダプタが使用可能な場合 エディタ上でも通信テストが行えます。

その際Unityプロジェクトの.NET Frameworkバージョンを4.Xに変更する必要があります。

安定性の問題により、現状ホスト(ペリフェラル)には対応していません。 またゲスト(セントラル)でもスキャン時にデバイス名を取得できないため、代わりにIDが取得されます。

通信量の制約

BluetoothLEはそもそもの帯域が狭いため(理論上は~1Mbpsだけど実測はもっと下) 大きなメッセージや大量のメッセージを一度に送受信することはできません。

コンパクトで最低限のメッセージ通信で完結するようにアプリケーションを設計する必要があります。

【お願い】

現状Android端末での動作検証が十分ではありません。

動作条件を満たしていたとしても、すべての機種でプラグインが動作するわけではなく 古い端末ではホスト(ペリフェラル)に対応していない場合があったり、 どうしても接続や通信が不安定となる端末があります。

動作確認ができた、もしくは動作しなかった端末をレポートいただけますと助かります。

blesock-unity-plugin's People

Contributors

miyorikobata avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.