[過去ログ] 【3Dゲームエンジン】Unity質問スレッド33 (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
223: 2017/12/31(日)11:58 ID:YEuDj3bX(1/3) AAS
物理演算を使って、物理法則に則ったゲームを作成するのか、
物理演算を使って、既存型のゲームを作成するのか、
(コライダーは利用するが、動きは非物理)
物理演算を使わずに、既存型のゲームを作成するのか
(旧来のゲームシステム)
224(1): 2017/12/31(日)12:40 ID:YEuDj3bX(2/3) AAS
positionの直接変更は、コライダーへの衝突計算が乱れる危険性あり
MovePositionによるposition変更は、velocity変更に基づいているので、
比較的安全にコライダーとの衝突計算がなされる
velocity変更を行わずに、全てAddForceで行った方が、
より自然な物理演算になるけど、velocityを0にするのが難しくなる
AddForceでvelocityを0にしようと逆方向に力を与え続けると、
逆向きの加速度がついてしまうので、基本的にはDragで減速せざるを得ない
225(1): 2017/12/31(日)13:07 ID:YEuDj3bX(3/3) AAS
2Dで地面との接触判定を行うのであれば、
・IsTouching,IsTouchingLayers
他のコライダーやレイヤーとの接触を検出する方法
(全方向からの接触を検出してしまう)
・Physics2D.OverlapArea,Physics2D.OverlapBox
配置した矩形が接触したコライダーを検出する方法
(OverlapAreaとOverlapBoxは矩形の設定方法が異なる)
・Physics2D.Linecast
配置した線分が接触したコライダーを検出する方法
(RayCastとは異なり、直線ではなく長さを持つ線分)
・Physics2D.BoxCast,Physics2D.RayCast
放射した直線が接触したコライダーを検出する方法
(BoxCastはRayCastの先端が矩形)
IsTouching系は、Collider2D.(自分との判定)とPhysics2D.(2者間の判定)がある
Cast系は投射方向を指定できるが、投射前に接触していると検出されないのが難点
LineCastやRayCastは線のため太さがなく、幅を持つコライダーでは複数本が必要
OverlapBoxと違って、Physics.CheckBoxは、2Dでは使えない
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.040s