UnityでRaycastを使用したシューティングゲームを作るときにヘッドショットを判定する方法

最近Unityに手を出してしまったのですが、Raycastで弾を表現する際、複数のコライダーでそれぞれ判別させようとしてもRaycastが持ってくるのはGameobject名なので、どのコライダーに当たったかわからないな...と思ったので自分なりの対処法を備忘録代わりに書き残しておきます。

まず、敵モデルの身長と、頭の長さをメモる。(ざっくり言えば、これからは(身長-頭の長さ)>(足元を0とした時のRaycastのy座標)が成立すればヘッドショットといった感じに持っていく)

その後

Raycast hit;(前提としてもうデータ習得済とする)

float f;

f=hit.point.y-hit.colider.gameObject.transform.position.y; //(Raycastが当たった場所のワールド座標のy座標)-(Raycastの当たったオブジェクトのワールド座標の座標)

//fは足元からの衝突座標の高さになるので、これを(身長-頭の長さ)と比較すれば良い

って感じでやればいいんじゃないかと思う。

 

Licensed under CC BY-NC-ND 4.0
Built with Hugo
テーマ StackJimmy によって設計されています。