Physics.Raycastでの接地判定2【unity】

公開日: 2014/10/04 SmoothMoves unity


ジャンプアクションの着地や落下などの空中アクション等を始めたり終わらせたりで試行錯誤した結果

過去記事
Physics.Raycastで接地判定1【unity】


Physics.Raycastでの接地判定
RaycastHit hit;
//レイがオブジェクトに当たったか判定
if (Physics.Raycast (transform.position, Vector3.down, out hit, 3))
{

 //オブジェクトのタグがgroundか判定
 if (hit.collider.tag == "ground")
 {

  //移動キーが押されているかどうか
  if(Input.GetKey (KeyCode.A) && Input.GetKey (KeyCode.D))
  {
  //移動キーが押されている
  移動アクション
  }else{
  //移動キーが押されていない
  待機アクション
  }

 }else{

  //レイがオブジェクトに当たってがタグがgroundでない
  空中アクション
 }

}else{

 //レイがオブジェクトに当たっていない
 空中アクション

}


とりあえずこれで納得のいく動きになりました
移動キーの判別を入れたのは、移動スクリプト側で移動アニメーションに切り替えていると、接地中の移動時にupdate毎に移動アクションと待機アクションが切り替わり続ける処理になってしまうためです

本当はジャンプした時だけレイを飛ばす方法?がいいのかもですが、ジャンプ以外のブロックから落ちた時とかも空中モーションにしたいのでこの形に・・・

ふーむ
  • ?±??G???g???[?d????u?b?N?}?[?N???A

0 件のコメント :

コメントを投稿