【Unity】RayCastを使って障害物との距離を測る
”障害物を乗り越える”をテーマに挑戦している日々なんですが、
曲がりなりにも越える処理を作る事ができました。
しかし、処理時間と転倒時に乗り越えモードの終了ができない、
二つの問題点が残っています(T-T) グスッ
これを解決するのに四苦八苦しているのですが、
いろいろ考えて思いついたので、記事にまとめてみます。
まず、動作の安定感を出す為に問題点を出してみました。
乗り越えモーションは、
障害物(黒ブロック)の左にあるOverZone(青のCollider)と言うトリガーを利用して、
OverComeModeに切り替えています。
ゾーンの内部で上キーを押せば、乗り越えモーションに切り替わるように
設定しているのですが、ゾーンの幅が1.5スケールあります。
当然、接触と同時にキー入力すれば差は1.5となりますが、
障害物寄りでキー入力すると距離は変化します。
ブロックの幅が1スケールでモーション起点が0~1.5スケールあるので、
距離としては、1~2.5の幅ができます。
最大速度を10としてるので、通過時間に0.1~0.25秒の差があります。
なので、モーションの時間を0.5秒として処理していましたが、
速度も変化するって事が最大の難点になっています。
仮に速度を2で移動させた場合、
1スケール進むのに0.5秒掛かってしまいます。
ゾーンの左端でモーションを起動すると幅が1.5あるので、
障害物の手前で処理が終…