3分で実装できる!Unityのゲームでスマホを振動させる方法

Sponsored Link


Unityで作ったゲームでスマホを振動させてみたい

どうも、Linです。唐揚げ、追加です。

 

Unityでスマホ用のゲームを作っているとたまに、

スマホを振動させたい

という瞬間が訪れるでしょう。

昨今のスマホゲームでは、キャラクターがダメージを受けたときや、ハプニングが起こった際に必ずといっていいほど振動していますからね。

真似したくなるのは時間の問題です。

 

そんなUnityでスマホを振動させる方法を調べみたところ、次の神記事に遭遇し、なんとか無事にスマホを振動させることができたのです↓

今日はそのUnityでスマホを振動させる方法を忘れぬうちにメモしておきますね。

 

 

Unityでスマホを振動させる方法

今回は例として、

ボタンを押したらスマホが振動する

という簡単なゲームを作っていきますよ。

Unity スマホ 振動

ボタンを適当に配置して、からのオブジェクトGameControllerを作成し、さらにそいつにGameController.scというスクリプトをアタッチして準備完了です。

Unity スマホ 振動

 

ズバリ、スマホを振動させるには次のようなコードを書けばオッケーです↓

コードを書いたらButtonにStartVibrate関数をひもづけることをお忘れなく。

 

ここでのポイントは次の2つです。

  • 【19行目】SystemInfo.supportsVibration
  • 【21行目】Handheld.Vibrate();

 

SystemInfo.supportsVibrationは、

デバイスが振動に対応していたらtrueを返す関数です。つまり、

とすることで、振動に対応しているデバイスならif文の中を実行してくれるわけです。

で、もしデバイスが振動してないならばelseの中の命令が実行されるのです。

今回のサンプルアプリでは、振動に未対応ならばUnityのコンソールに対応してない旨を伝えてくれるようになっているのですね。

 

続いて、Handheld.Vibration。こちらは、

ゲームを再生しているデバイスを振動させるメソッド。

振動させる時間は1秒弱になっております(実際に時間を測ってみるとそれぐらいだった)。

引数が設定されておらず、振動する時間は決められないようです。

どうしても振動時間をコントロールしたい場合は、別途頑張らないといけないみたいなので省きます笑

 

 

振動するかテストする方法

以上がUnityでスマホを振動させる方法でした。

ぶっちゃけ、

Handheld.Vibrate();

という1行で振動できちゃうのでものすごく簡単だったと思います。

 

コードが書けたらやってみたくなるのが、

本当に振動するのかをテストする

ということですよね?

ぼくも実際にやってみましたが、ここで結構苦戦しました。

 

まず、Unityを起動しているMacでゲームを実行してみると、Macは振動に対応してないため本当に振動できるのかわかりませんでした。

そこで、スマホをMacにつないでUnity Remoteというアプリを起動してゲームを実行してみました。

Unity Remote 5

Unity Remote 5
posted withアプリーチ

 

がしかし、ここでもデバイスが振動に未対応の結果になってしまいます。

 

そこで最後手段、

Build And Run

での実機テストを試みました。

PCにスマホをつなぎ、PC経由でアプリファイルをスマホに送り込み、スマホ上でアプリを起動するというものです。

 

File > BuildSettings

と進み、

Unity スマホ 振動

まずは「PlayerSetting」をクリック。

ここでInspector Viewの中から「Other Settings > Identification」の「PackageName」を変更してあげます。

Unity スマホ 振動

デフォルトだと、ここが、

com.Company.ProductName

にっているので、この末尾の「ProductName」を何か好きなものに変更してみましょう。ぼくは適当にVibに設定しておきました。

ここが変更してないとBuild And Runできないので要注意です。

 

セッティングが終わったら満を辞してBuild And Run。

適当な名前でファイルを保存して実行してみます。

Unity スマホ 振動

スマホをPCにケーブルで接続するのをお忘れなく

 

これならうまくコードが書けていればスマホが振動すると思います。

Unityゲームを作ったらせっかくなので、スマホを振動させるアクションを混ぜ込んでいきましょう。

 

「それでも振動しねえよ!!」

と憤っている方にはエンジニア専門のQAサイト「teratail」がおすすめです。

質問に答えてくれる方はプロのエンジニアの方ばかりなので、問題を解決できるかもしれません。

 

それでは!

Lin

飯橋凛(Ihashi Lin)

新卒で入ったネット広告代理店を1年半で退職。
その後、副業として活動していたウェブメディア運営のフリーランスへ。
現在はプログラミングの勉強に励み、0からフリーエンジニアの道を目指す。最近はキムチをまとめ買いしている


Sponsored Link

コメントはこちらからお願いします!



もう1本読んでみる