Engineerの研鑽

メインはプログラミング系ブログ(本の要約とかもします)

質問はCONTACTやコメントでお願い致します。

【Unity】Androidの加速度センサの値を取得

こんにちわ。ゆきぽんずです。

 

今日はUnityでAndroidの加速度センサの値を取得したいと思います。

 

使用した機器

UnityのVersion : 2018.3.8f1

Android端末 : XperiaCompact

Xperia XZ1 Compact SO-02K black

 

*今回の記事ではUnityとAndroidの連携についてはできているものとしています。

出来てない人は以下のサイトがオススメです。

(オススメのサイト : https://qiita.com/taroyan/items/2ff7f6aadd640221bde5

 記事の目的

Androidで加速度センサの値を取得する方法の学習

 


AccelerationDataLog

アプリを作成するための手順

1. 新しいプロジェクトを立ち上げます(名前は個人で決めてください)。

 

2. File => Build Settingsをクリック、細かい設定をする

 2.1 platformをAndroidに変更

 2.2 Sceneに何もなければAdd Open Scenesをクリックして既存のSceneを追加

 2.3 Player Settings => Others Settings => Package Nameを変更(変更しないとエラーが出ます)

 2.4 Player Settings => Others Settings => MinimumAPIを変更(自分のAndroid端末のAPIを満たしているかを確認してください)

f:id:yukiyukiponsu:20191117144738p:plain

 

3. GameObject => UI => Textをクリックし、Duplicateを2回行い、それぞれにAccelerationX, ...等の名前を付ける(Canvasは自動生成される)

 

*今回は見やすいように他の部分もいじっていますが、絶対に必要な部分ではないので割愛しています(そこを含めると複雑になるので)。

f:id:yukiyukiponsu:20191117144626p:plain

 

3.1 Create => C# Scriptをクリックし、accelerationという名前を付ける

 以下のサイトのコードをコピぺする
 https://github.com/yukiyukiponsu/AccelerationMeasure

 

4. Canvasにacceleration.csをAddComponentし、UnityEditorを実行すると...

f:id:yukiyukiponsu:20191117144537p:plain

 加速度が永遠に0と表示されます。

 

これをAndroidにBulid & Runすれば、最初に見せた動画のようにAndroidで動くようになります。

 

ただ問題なのは加速度の周波数が変更できないこと(Androidの場合周波数が60Hzで固定になっているそう)。

 

しかも重力加速度が入ってるので、純粋な加速度ではなさそう。

 

まだまだ改良の余地ありです。

 

今日は以上です。

 

今日もブログを読んでくださりありがとうございます。

 

それでは失礼します。