どうもみなさん、名無し( @7shi321)です。
この回では前回のジャンプを応用して押す長さでジャンプ力を変化させたいと思います。
今回の#1ではその骨組みとなる部分を作成していきます。
[alert title=”注意”]本記事は2Dを前提に作成していますが、3Dでもあまり変わりません。例えば、Rigidbody 2DがRigidbodyになったり、Box Collider 2DがBox Colliderになったりなど。[/alert]
目次
押す長さでジャンプ力が変化するゲームの主な例
スーパーマリオ
主なゲームの例としてはスーパーマリオです。
マリオのジャンプは
ボタンを長く推していれば大ジャンプ
少ししか押していなければ小ジャンプ
といったボタンを押す長さでジャンプ力が変化します。
2Dマリオや3Dマリオなどのほとんどのマリオのアクションゲームにはジャンプ要素がありますが、そのほとんどは押す長さでジャンプ力が変化します。
押す長さでジャンプ力を変化させる方法
[timeline] [tl label=’STEP 1′ title=’キャラクターのオブジェクトを作成’]
Hierarchyに左クリックでCreate Emptyをクリックしてキャラクターを作成します。
[/tl] [tl label=’STEP 2′ title=’Componentを追加’]
先程追加したGameObjectをHierarchyで選択し、
右側のInspectorでAdd Componentをクリック、
Sprite Renderer、Box Collider 2D、Rigidbody 2Dを追加します。
[/tl] [tl label=’STEP 3′ title=’Spriteを選択’]
Sprite RendererのSpriteの右側にある点を押し、Assetsからキャラクターにしたい画像を選択します。
Assetsに画像がない場合は下のProjectに使用したい画像をドラッグ&ドロップします。
[/tl] [tl label=’STEP 4′ title=’Box Collider 2Dを設定’]
Box ColliderのEdit Collider、またはOffset(位置)、Size(大きさ)で当たり判定の形を合わせます。
[/tl] [tl label=’STEP 5′ title=’Rigidbody 2Dを設定’]
Rigidbody 2DのGravity Scaleを0にし、Freeze RotationのZにチェックを入れます。
[/tl] [tl label=’STEP 6′ title=’接地判定用のオブジェクトを作成’]
STEP 1で作成したGameObjectの上で左クリックし、Create Emptyをクリックして接地判定用のオブジェクトを作成します。
[/tl] [tl label=’STEP 7′ title=’Box Collider 2Dの追加’]
STEP 6で作成したGameObjectにBox Colider 2Dを追加します。
[/tl] [tl label=’STEP 8′ title=’Box Collider 2Dの設定’]
Is Triggerにチェックを入れます。
また、STEP 7で追加したBox Collider 2Dの形を設定します。
この当たり判定が地面に触れているときだけジャンプできるようになります。
[alert title=”注意”]この当たり判定がキャラクターよりも大きくなってしまうとキャラクターの当たり判定を飛び出し、壁を無限にジャンプできてしまったりなどの不具合が起きてしまうのでキャラクターよりも少し小さめに設定しましょう。[/alert]
[/tl] [tl label=’STEP 9′ title=’接地判定のコードを追加’]
STEP 6で追加したGameObjectにNew Scriptをクリックして次のコードを追加します。
using System.Collections; using System.Collections.Generic; using UnityEngine; public class GroundCheck : MonoBehaviour { //接地判定 public bool isGround = false; private void OnTriggerEnter2D(Collider2D col) { if (col.tag == "Ground") { isGround = true; } } private void OnTriggerExit2D(Collider2D col) { if (col.tag == "Ground") { isGround = false; } } }
[/tl] [/timeline]
まとめ
以上で接地判定の設定は終了です。
次は地面となるタイルマップの作成と押す長さでジャンプ力が変化するシステムを作っていきます。
よかったらツイッターフォローお願いします!
1 件のコメント
ts