Unity+UnrealEngine4+Blog.

UnityやUnrealEngine4とかについて学習したことを書いてます

トラップに当たった時にPlayerの動きを一時的に止める方法

からくり屋敷のトラップにかかった時に、Playerの動きを一時的に止めたくてあれこれ悩んでいましたが、やっとできるようになりました。

 

RigidbodyでPlayerを動かしている場合に一時的に止めるのはググると情報が出てくるのですが、CharacterControllerで動かしている場合がなかなか見つかりませんでした!

 

今回の動きを止める方法の概要は、Playerの動きを制御しているスクリプトを取得して当たり判定があった時にそのスクリプトを無効化する。そして一定時間後に有効化するというものです。

 

今の私のPlayerはCharacterControllerを使って動かしているので、Playerの子要素へカプセルコライダーとリジッドボディーを付けています。それにトラップの当たり判定があった時に親要素であるPlayerのスクリプトを取得して無効にします。

 

スクリプト

キャラクターの動きを一時的に止める

 

f:id:nabesi777:20181010095740j:plain