manahiyoの気まぐれ

備忘録を兼ねたブログです。

UNITY+ARCoreでWIFI可視化

UNITYに興味を持った理由

AR関係を調べているとAndroidStudioよりもUNITYの情報量が圧倒的に多い。

ということはARのソフトは皆UNITYを使っているのではという感じがしてきた。

別にゲームを作るわけではないのだけれど、UNITYのほうが何かと簡単にできるというようなことがweb上に書いてある。

 

というわけで以前AndroidStudioで作ったRFWatcherをUNITYに移植してみた。

 

UNITYに移植してみる

 基本的に前回のUNITYでARCoreを試すからの続きとなる。

 

基本的にUNITYは3Dの表示などがGUIでいろいろ設定ができとても便利

 

 

テキスト表示は下記を参考にした

www.sejuku.net

 

これでRSSIの表示ができる。

 

球の表示は下記

techacademy.jp

 

WIFIの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ボタンをつけなければ

 

www.sejuku.net

 

よく見るとsphereが透けていない。下記を参考に透明度の設定をする

qiita.com

 

 

作ってみた感想としては、UNITYすごいです。簡単にできるのでびっくり。

はじめに書いた通りweb上の情報量も多いのでやりたいことがググるとすぐ出てくるのが大変助かります。

スマホを横にすると自動的にテキストやボタンも移動と回転してくれるのにちょっと感激。

あとはコンパイルして実行までにちょっとかかるのがもう少し短くなるといいのですが(ちょっと古いPCのせいかな?)

 

 

とりあえず最低限の機能は移植できたので今日はここまで。こんな感じ

f:id:manahiyo831:20201103214036p:plain