physicsに関するhexagon0503のブックマーク (3)

  • 【Unity】Raycastを使わず地面に接触しているか判定する - テラシュールブログ

    今回は2Dゲームで地面に接触しているかを判定するアプローチについてです。 ピヨちゃん大地に立つ判定 ただし壁や天井は除く 地面の接触判定をする Colliderに接触しているかどうかを取得する GetContactsやIsTouching GetContactsやTouchesで得る値を絞り込むフィルター Rayを飛ばすアプローチを考える ピヨちゃん大地に立つ判定 2Dゲーム…というか横スクロールなアクションゲームにおいては、キャラクターが地面に接触しているのかを判断する機能は、重要な要素の一つです。 例えば「二段ジャンプ」が出来るゲームでは、二回以上ジャンプさせない為に、「一度地面に接触したらリセット」のような機能が必要になります。 同様に「ジャンプ中はモーションが変わる」みたいな機能がある場合も、地面に接触しているか判定する必要が出てきます。 ただし壁や天井は除く 接触しているかどうか

    【Unity】Raycastを使わず地面に接触しているか判定する - テラシュールブログ
  • 【Unity】指定したCollider2Dへの最短座標を求める - テラシュールブログ

    今回は指定したCollider2Dへの最短座標を求める機能について紹介します。 指定したColliderへの最短距離の問題 指定したColliderへの最短距離を求める それで、これは何に使えるのかな? 関連 指定したColliderへの最短距離の問題 オブジェクトから指定したColliderへの最短距離を求めようと思った時、これが実は意外と面倒な事になります。 例えば下のようにTargetからパンダのColliderへの最短距離を求める時、Colliderの形状によって最短距離は変わってしまいます。大雑把な計算で良いならば中心点からRaycastでも撃てば十分なのですが、地形に沿って…のような場合には余り上手くありません。 指定したColliderへの最短距離を求める 指定したColliderへの最短距離を求めます。 これはrigidbody2D.Distanceが使えます。 gist.

    【Unity】指定したCollider2Dへの最短座標を求める - テラシュールブログ
  • 【Unity】物理演算を指定秒数 進める Physics.Simulate - テラシュールブログ

    今回は「シーンの物理現象をシミュレートする」という、一見分かりにくいAPIのPhysics.Simulateおよび Physics2D.Simulateついてです。 物理演算を指定秒数進めるAPI 物理演算を進める 物理演算を指定秒数進める・巻き戻す 未来予測 感想 関連 物理演算を指定秒数進めるAPI このSimulate系のAPIは、簡単に言えば「物理演算を指定秒数、進める」事のできるAPIです。 通常は物理演算は「時間」によって進みますが、コレをスクリプトから超加速出来る訳です。 と言っても凄く癖のある機能で、 RigidbodyもしくはRigidbody2Dに動作する FixedUpdateは呼ばれない 1回に進められる時間はFixedDeltaTime(0.0167秒)辺りが限界*1 他のRigidbody等の接触により結果が変わる事がある*2 という、中々に微妙な機能でもありま

    【Unity】物理演算を指定秒数 進める Physics.Simulate - テラシュールブログ
  • 1