[過去ログ] 【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