UNITY+ARCoreでWIFI可視化
UNITYに興味を持った理由
AR関係を調べているとAndroidStudioよりもUNITYの情報量が圧倒的に多い。
ということはARのソフトは皆UNITYを使っているのではという感じがしてきた。
別にゲームを作るわけではないのだけれど、UNITYのほうが何かと簡単にできるというようなことがweb上に書いてある。
というわけで以前AndroidStudioで作ったRFWatcherをUNITYに移植してみた。
UNITYに移植してみる
基本的に前回のUNITYでARCoreを試すからの続きとなる。
基本的にUNITYは3Dの表示などがGUIでいろいろ設定ができとても便利
テキスト表示は下記を参考にした
これでRSSIの表示ができる。
球の表示は下記
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
フォルダからマニフェストファイルを検索して、それをPlugins/Androidフォルダにコピーして、上記のパーミッションを追加
こういうところがUNITYだとちょっと面倒かなと感じる
あとは下記のコードでRSSI取得
using (var activity = new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic<AndroidJavaObject>("currentActivity"))
{
var wifiManager = activity.Call<AndroidJavaObject>("getSystemService", "wifi");
rssi = wifiManager.Call<AndroidJavaObject>("getConnectionInfo").Call<int>("getRssi");
}
STARTボタンをつけなければ
よく見るとsphereが透けていない。下記を参考に透明度の設定をする
作ってみた感想としては、UNITYすごいです。簡単にできるのでびっくり。
はじめに書いた通りweb上の情報量も多いのでやりたいことがググるとすぐ出てくるのが大変助かります。
スマホを横にすると自動的にテキストやボタンも移動と回転してくれるのにちょっと感激。
あとはコンパイルして実行までにちょっとかかるのがもう少し短くなるといいのですが(ちょっと古いPCのせいかな?)
とりあえず最低限の機能は移植できたので今日はここまで。こんな感じ