やりたいこと
着地判定でColliderの下側が地面についた時に着地判定したい
結論
ContactFilter2Dを使う
例
クラス内で次の宣言をする
[SerializeField] private ContactFilter2D filter2D = default;
宣言したら、
private void OnCollisionEnter2D(Collision2D collision){}
等のメソッド内の設置判定にIsTouching(filter2D)をANDする
if (collision.gameObject.CompareTag("GROUND") && rigid2D.IsTouching(filter2D))
このスクリプトをアタッチしたオブジェクトのInspectorで以下のように設定
角度は右側を0度として時計回りっぽいので、80〜100あたりを指定すればオブジェクトの下側だけ反応させることができた