【Unity+SteamVR 覚書】歩けるようにして、すりぬけないようにして、衝突検知して、物を掴むまで。
スポンサードリンク
こんにちは、ふぁんたです。
初期設定の次の設定も、後々自分が参照できるように残しておきたいと思います。
環境はUnity2018.2.9f1になります。
歩けるようにする方法(前回のにも書いた)
VRTK_TouchpadWalkingというScriptを[VRTK]につける
VRTK_Controller EventsというScriptを[LeftController][RightController]につける
すりぬけないようにする方法
[VRTK]にスクリプトを7つつける。
VRTK_Body physics
VRTK_policy list
VRTK_ headset collision
VRTK_fade
VRTK_collision fade
VRTK_position rewind
の7つを。
衝突を検知する方法
colliderとか設定するといけるんですが、すり抜けないようにするためにつけた
「Headset Collision」が、頭のカメラとの衝突を司ってくれます。
また、[LeftController][RightController]に、VRTK_Interact Grabというスクリプトをつけると、両手のコントローラーとも衝突判定が行われるようになります。
衝突した場合の検出方法は、ヘッドセットの剛体(衝突判定を引き起こすやつの名前)が VRTK_HeadsetColliderContainer
両手の名前が[LeftController][RightController]なので、
1 2 3 4 5 6 |
void OnTriggerEnter(Collider other) { string touched_name = other.gameObject.name; if(touched_name = "VRTK_HeadsetColliderContainer") {} } |
とかするとプログラム書きやすいんじゃないかなと思います。
追記:両手の衝突判定したときに使われる名前は[LeftController]とかではありませんでした。
それらにくっついたスクリプトが自動生成する衝突用の箱みたいなのがあって、それの名前である「body」とか「side」とかが名前なので、衝突判定するのは難しそうです。
物を掴む方法
掴まれるアイテム側に VRTK_Interactable Objectというスクリプトをくっつけ、
現れるメニュー(インスペクタといいます)のis Grabbableにチェックを入れます。
掴む手の方にVRTK_Interact Grabをくっつけると、準備完了。
物を掴んで動かすことができるようになります。
次は何だ。どこだ。ドアの実装か。
スポンサードリンク
ディスカッション
コメント一覧
まだ、コメントがありません