SphereCastやらRaycastやら調べたら色々ありました。
しかし私は新しくLayerを作るのが気に入らなかった。
そこで私は考えた
Rigidbodyがアタッチされているなら、速度のy要素が(ほぼ)0になったとき、でよいのではなかろうか???
bool isGround = Mathf.Abs(rbody.velocity.y) < 0.001f ? true : false;
y要素が
- 負なら重力による落下
- 正ならジャンプ中など
- (ほぼ)0なら地面に着くか、空中で静止している状態か
となる。
これでよくね?
追記(10/08)
ずっと平面なら別にいいんだけど、坂道があったらこの前提は崩壊します。
素直にSphereCastとか使いましょうね
おしまい