2016-04-04 14 views
0

ワールド空間でキャンバスをレンダリングすると、UIコンポーネントとゲームオブジェクトの衝突を検出できます。ここでは、キャンバスのレンダリングモードがスクリーンスペースオーバーレイの場合、2つのUI要素(UIボタンなど)の衝突を検出しようとしています。ユニティのUI要素間の衝突

ボックスコライダーコンポーネントをUIボタンに追加し、OnCollisionEnter2DとOnTriggerEnter2Dを使用して試しました。しかし、衝突は検出されません。衝突を検出する方法はありますか?

答えて

2

質問にはコード本体は必要ありません。しかし、私は解決策を考え出しました。両方のUI要素に、以下を行う必要があります。

  • rigidbody2dコンポーネント
  • 箱コライダーのコンポーネントを取り付け
  • 無効重力
  • を取り付けisTriggerチェックボックスを有効にします。 UI要素の一方に取り付けられたスクリプトで今

void OnTriggerEnter2D(Collider2D other) 
{ 
    Debug.Log ("Triggered"); 
} 

これは、衝突を検出します。

+0

ありがとうNahuel –

+0

重力をオフにすることは、UI要素が落ちるのを防ぐためですか?または、実際の衝突検出には必要ですか? – LilaQ

+0

UI要素が倒れないようにするだけです。 –