【Unity】Handheld.Vibrateを使ってみた

スマホのバイブレーション機能がUnityに用意されていたので、試しに使ってみました。


環境

  • Unity2018.3.7f1
  • MacBookPro Mojave v10.14.3
  • iPhone SE OS11.4.1

実装

調べてみると呼び出し自体はすごくシンプルで、Handheld.Vibrate関数を呼び出すだけでした。ソースはこんな感じに

とてもシンプルですね!ただ、用意されている関数はこれだけの為、強弱や回数、振動しているかどうかというのは取得できないようです。他サイトで調べてみると、自分でネイティブ実装すればできるようですね。

これだけだと面白くないので、再生回数、再生秒数、終了コールバック受け取りできるような形にしたクラスを作ってみました!Vibrationのstatic関数にアクセスしたタイミングで破棄されないGameObjectを生成し振動処理を行う形になっています。

1回の振動を計測したら、約0.5秒くらいだったので、再生時間を0.5秒として扱ってみました。使い方はこちらです。


まとめ

凝ったことをしなければ、数分で実装する事ができました!振動の強弱や振動終わりを感知するというのもやってみたいので、別の機会で試しみて記事に書こうと思います!


参考url

  • https://docs.unity3d.com/jp/460/ScriptReference/Handheld.Vibrate.html
  • https://qiita.com/DURIAN_JADE/items/3fdddb4ad19658f50539