自分用Unityメモ:衝突位置を取得する(トリガーの場合も)
オブジェクトの衝突を検出するには OnCollisionEnter、
トリガーに入ったかどうかは OnTriggerEnter で取得できます。
衝突位置の取得はそれぞれこんな感じ。
でも実はトリガーの時は大まかな位置しか取れてない。
エフェクトを表示するとかだけなら問題ないと思うけど
何か物理的な処理を正確に行いたい場合にはちょっとアレかもしれない。
ほかにいい方法あるのかなぁ。
・コリジョンの時
void OnCollisionEnter(Collision other) { Vector3 hitPos; foreach (ContactPoint point in other.contacts) { hitPos = point.point; } }
・トリガーの時
void OnTriggerEnter(Collider other) { Vector3 hitPos = other.ClosestPointOnBounds(this.transform.position); }
第2回unityroomゲームジャム
unityroomさんの一週間ゲームジャム第2回、
お題『転がる』に参加させていただきました。
ほかの参加者さんのブログを閲覧させてもらうと
自分が如何に何も考えていないかよくわかるけど、
そこはとりあえず今は気にしない方向で...。
今回のクラス構造はこんな感じでした。
右下の方、ゲームにADVモードを挟んだり
フェード演出からの非同期ロードしたりするモジュールなのですが
今回のゲームでは動いてない機能があるので
メモリを無駄に浪費しているかもしれません。
(でも分割するとCanvas増えちゃう....)