VR:Unity空間内をDayDreamコントローラーで歩く5(できました!)

今日は、キーボードからではなくて、デイドリームコントローラーからの入力を受け取るように改造していきます(´・ω・)

かなり前にSummonFunc()を作ったときにやったのを思い出しながらやってみます。

条件式:if (GvrControllerInput.ClickButtonDown) でコントローラーのボタンがクリックされたことを認識したときに、関数SummonFunc()を実行しています。

関数SummonFunc()は任意のオブジェクトを任意の座標と向きを定義してヒエラルキーに追加(Instantiate)する内容になっています。

変更しましょう:

Gvrのメソドを利用していきましょう。

GvrControllerInput.以下のメソド

  1. AppButtonDown     : アプリケーションボタンを押したとき
  2. HomeButtonDown : ホームボタンを押したとき
  3. ClickButtonDown   : タッチパッドボタンを押したとき
  4. TouchDown               : タッチパッドに触れたとき
  5. TouchPos                    : タッチパッドに触れている位置(Vector2)

if(GvrControllerInput.TouchDown)

  • tpX=0.5,tpY=0.5が中心で
  • 前進はtpY<0.3のときにしよう
  • 後退はtpY>0.7のときにしよう
  • 右を向くのはtpX>0.7のときにしよう
  • 左を向くのはtpX<0.3のときにしよう

もっといい方法があるかもしれないが、まずはこれでやってみよう。

スクリプト:PlayerMover2.cs

デイドリームコントローラーで動きました(´・ω・)

まだまだ、改良は必要ですが、とりあえず動くものはできました。

かれこれ、2日まるまるかかってしまいましたが、大きな前進です!

起動直後になぜか、カメラが動いてしまいます。

後日調整が必要です。

VR:Unity空間内をDayDreamコントローラーで歩く4(まずはキーボードから)

前回は結局 ロコモーションもスクリプトがおかしいですよーと警告が出てどうにもなりませんでした。しかも、ロコモーションアセットを全部消しても、ビルドができなくなるというわけわからん状態になったので、プロジェクトを捨てました。恐ろしいです。ここいらでちゃんとUnity勉強したほうがいいかもしれませんね。

基本に立ち返って、自分でカメラ操作のスクリプトを実装していこうと決意した次第であります。

今回の成果:大きな前進(*´﹃`*)

キーボードのWASDまたは矢印キーでプレイヤー視点を移動することに成功しました。

スクリプト:PlayerMover.cs

動いた、嬉しい。