(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

一人称視点 in iOS (4 終)【Unity】


このエントリーをはてなブックマークに追加

一人称視点 in iOS (3)【Unity】 - (:3[kanのメモ帳]
の続きです.

タッチ領域の制限


前回,バーチャルパッドに触れている指は視点操作出来ないように
RaycastHitを試してみましたが上手くいかず…

検討した結果,バーチャルパッドを設置している画面下部では
視点操作が出来ないようにしました.


タッチによる視点移動


タッチ領域の制限も加えた,視点移動のスクリプトは以下の通りです.




Unity 視点移動(キーボード or タッチ)

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


という事で更にスクリプト改善



Unity 視点移動(キーボード or タッチ)2


GUIElement.HitTest(position)でpositionの座標がGUIElementに触れているか判定出来るようです.これでやっと思い通りの設計になりました!


終わりに


まさか記事四回分になるほど手間取るとは思いませんでしたが,なんとか一人称での移動+視点移動が完成しました!
しかし,予想はしていましたがなかなかに操作が難しい…


↓片手で移動+視点移動が出来る方法も考えられてるようです…ツカイタイ
新しいバーチャルジョイスティックのアイデアの話: 新 masafumi's Diary