【Unity2D】2DでPhysics.Raycastにハマった話

Unity

結論。

Physics2D.Raycastを使えば出来ました。

このページに載ってます…。

Physics2D-Raycast - Unity スクリプトリファレンス
Casts a ray against colliders in the Scene.

↓自分が2Dでやろうとしてしまったページ

Physics-Raycast - Unity スクリプトリファレンス
Casts a ray, from point origin, in direction direction, of length maxDistance, against all colliders in the Scene.

余談

(リファレンスのコードで)何かVector3.forwerdを使ってるな~(Vector3.forwerdはVector3(0, 0, 1) と同じ意味)何でだろうな~とか思って、あっ!3Dだから奥行きがあるんだと気づいて、じゃあVector3.rightを使えば(Vector3.rightはVector3(1, 0, 0) と同じ意味)2Dでも行けるかな?とか思いましたが、それでもダメで…Physics.Raycastの他の引数とかも見てみましたがイマイチ良く分からなくて…みたいな状態が続いていましたが、ふと2Dがあるのでは?と思って調べてみたところ、案の定Physics2D.Raycastがありました…。
今度から2D版があるかをしっかり調べようと思います…自分の事だし、また忘れて同じようなハマり方してそうですが…。

あと、Physics.Raycastはbool型を返し、Physics2D.RaycastはRaycastHit2D型を返しおり、扱い方はかなり違うっぽいです。

Debug.DrawRayには2Dとかもなく、普通に描画してくれました。

同じようなハマり方をした人がいたときように書いておきます…いるかな…。

コメント

タイトルとURLをコピーしました