一人称視点 in iOS (3)【Unity】 - (:3[kanのメモ帳]
の続きです.
タッチ領域の制限
前回,バーチャルパッドに触れている指は視点操作出来ないように
RaycastHitを試してみましたが上手くいかず…
検討した結果,バーチャルパッドを設置している画面下部では
視点操作が出来ないようにしました.
タッチによる視点移動
タッチ領域の制限も加えた,視点移動のスクリプトは以下の通りです.
touch.position.yがタッチされた場所のy座標,Screen.heightが画面の高さなので,
if(touch.position.y > Screen.height * 0.5f)
で画面の半分より上部のみ視点移動の使えるようにしました.
またtouch.deltaPositionで,前回のUpdateから指が移動した距離が分かるので,それを回転速度に入れています.
画面を移動させれるのでは無く軸を回転させるので,yの移動量がXの回転速度,xの移動量がYの回転速度に代入することに注意が必要です.
タッチによる視点移動2
上記の方法で終えるつもりでしたが,後日GUIElement(GUITexture、GUIText)にクリック判定がある事が判明.
GUIElementのクリック判定 - n-yoda's blog
という事で更にスクリプト改善
GUIElement.HitTest(position)でpositionの座標がGUIElementに触れているか判定出来るようです.これでやっと思い通りの設計になりました!
終わりに
まさか記事四回分になるほど手間取るとは思いませんでしたが,なんとか一人称での移動+視点移動が完成しました!
しかし,予想はしていましたがなかなかに操作が難しい…
↓片手で移動+視点移動が出来る方法も考えられてるようです…ツカイタイ
新しいバーチャルジョイスティックのアイデアの話: 新 masafumi's Diary