[過去ログ] 【3Dゲームエンジン】Unity質問スレッド33 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
217
(2): 2017/12/29(金)23:42 ID:qixlPtWp(1) AAS
初心者です。
2Dでジャンプアクションゲームを物理演算で製作中です。
ようやく左右への移動ができるようになったところです。
(Input.GetAxisをvelocityに代入しています)
ジャンプの際に、お聞きしたい事があるのですが、
まず地面に接している判定をどうするのか、
ジャンプはvelocity変更でよいのか、AddForceの方がよいのか、
ボタンを押している時間に応じてジャンプを高くしたい
(無制限に高くではなく、ジャンプ力には上限を設けたい)
などを詳しく解説してあるサイトとかありますでしょうか?
あるいは、ジャンプ動作のスクリプトに、定石・セオリーみたいのはあるのでしょうか?
221
(1): 2017/12/30(土)16:10 ID:DH75+pHx(1) AAS
>>217
初心者向けに
2D platformerというジャンプアクションゲームのアセット(無料)がある

外部リンク:www.assetstore.unity3d.com

あとはggれば解説してるとこがあったはず
232: 2018/01/01(月)15:25 ID:ljD1K3gw(3/4) AAS
>>217
ちなみに、自分の場合は、2Dでジャンプ機能を実装する際は、

Startでint t = 100,float v = 1.0fをセット

Updateでボタン入力と接地を監視
?入力あり
 t >= 0なら、Jump()へ飛んで、その後にt = t -1
?入力なし
 接地ありなら、t = 100へ
 接地なしなら、t = 0へ

Jump()
 t = 100なら、AddForce(mass * v * Vector2.up, ForceMode2D.Impulse)
 そうでない場合は、AddForce (mass * (t/100) * (- Physics2D.gravity))

最初のフレームで上向き初速v = 1.0をつけておき、
次のフレームからは重力加速度の相殺を線形的に減じていき、
t = 100フレームで重力加速度の相殺が消える仕組み

ボタン入力がない場合は、接地時はt = 100に戻して、
非接地時はt = 0をセットして連続での再ジャンプを防止
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 1.628s*