「Unity/UIImage/Collider2d」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→UniRxで2Dのとき) |
(→2d画像UIの接触判定) |
||
行33: | 行33: | ||
参考:https://mogi0506.com/unity-2d-collition/ | 参考:https://mogi0506.com/unity-2d-collition/ | ||
+ | |||
+ | ==重力無視== | ||
+ | 追加したCollider2dのBodyTypeをKinematicに | ||
==2d画像UIの侵食判定== | ==2d画像UIの侵食判定== |
2024年7月12日 (金) 10:30時点における版
2d画像UIの接触判定
- Canvas/Imageを2つ追加
- 両方にBoxColliderを追加
- 上側のImageにだけ重力としてRigitbody2Dを追加。
- ImageのInspectorのBoxColliderのxとyが1になってるので、Imageサイズと同じ(デフォルト:100)にする
これで、上側のImageがおりてきて、下のImageと接触して止まるはず。
スクリプトで接触判定
using UnityEngine; public class Collider2d : MonoBehaviour { // 接触開始 void OnCollisionEnter2D(Collision2D collision) { Debug.Log("enter name=" + collision.gameObject.name); } // 接触中 void OnCollisionStay2D(Collision2D collision) { Debug.Log("stay name=" + collision.gameObject.name); } // 接触終了 void OnCollisionExit2D(Collision2D collision) { Debug.Log("exit name=" + collision.gameObject.name); } }
OnCollisionExit2Dは、接触したImageのy位置を、手動で、強制的に変更して、接触から、引き離すと発生する。
参考:https://mogi0506.com/unity-2d-collition/
重力無視
追加したCollider2dのBodyTypeをKinematicに
2d画像UIの侵食判定
using UnityEngine; public class ColliderTrigger2d : MonoBehaviour { void OnTriggerEnter2D(Collider2D collider) { Debug.Log("enter name=" + collider.gameObject.name); } void OnTriggerStay2D(Collider2D collider) { Debug.Log("stay name=" + collider.gameObject.name); } void OnTriggerExit2D(Collider2D collider) { Debug.Log("exit name=" + collider.gameObject.name); } }
3Dのとき
Unity/3d/collider [ショートカット]
UniRxで2Dのとき
Unity/UniRx/接触判定/接触2D [ショートカット]
Unity/UniRx/接触判定/侵食2D [ショートカット]