実現したいこと
接触したオブジェクトを取得する。
発生した問題
接触したオブジェクトじゃなくて接触したオブジェクトの親オブジェクトを取得してしまう
試したこと
c#
1void OnCollisionEnter(Collision col) 2 { 3 string coname = col.gameObject.name; 4 Debug.Log(coname);
で取得したオブジェクトの名前を見たら
接触したオブジェクトじゃなくて接触したオブジェクトの親オブジェクトでした
取得した親オブジェクトにも親オブジェクトがあり
階層が違う子オブジェクトでも取得した親オブジェクトは一緒です
(取得した親オブジェクトの親オブジェクトは空のオブジェクト)
追記
どうやら原因は接触した親オブジェクトにリジットボディーがアタッチされていなくて
取得してしまうオブジェクトにはリジットボディーがアタッチされているせいだと分かりました
ですが取得してしまう親オブジェクトのリジットボディーを外したら移動が出来なくなるので外せません
目的を実現する方法はあるのでしょうか。
状況をよく知りたいのでHierarchyの構成を教えてくれますか。
▼tank 1
▼車体(取得してしまうオブジェクト)
車体前面(接触したオブジェクト)
▼砲塔
砲塔前面(ここに接触しても車体を取得)
こんな感じです
なぜか砲塔のスペースがなくなってしまいましたが砲塔は車体の子オブジェクトです。
車体のリジットボディーを外したら接触したのコンポーネントが取得できました。
ですが車体は移動の役割をもつためリジットボディーを外すことはできません。
void OnCollisionEnter(Collision col)
{
string coname = col.gameObject.name;
Debug.Log(coname);
のコンポーネントがアタッチされたオブジェクトにもリジットボディーはあります
車体の子オブジェクトにはリジットボディーがありません。
回答2件
あなたの回答
tips
プレビュー