はじめに
こんにちは。AdventCalendar 19日目を担当するyukki8です。
本記事では、Unityでアクションゲームを作る方法を紹介します。
内容としては、ステージの作成とプレイヤーの作成・移動・ジャンプの設定となっています。
本記事で紹介する方法・説明は、正しくなかったり、回りくどいものであったりするかもしれないことをあらかじめご了承ください。
ステージの作成
手順
1.Hierarchy欄の+を押す
2.2D object > Sprites > Square を選択する
3.Hierarchy欄のSquareを選択する
4.Inspector欄の一番下にあるAdd Componentを押す
5.Physics 2D > Box Collider 2D を選択する
これでプレイヤーが立つことのできるステージが出来ました。
ポイントとしては4~5の工程で、これをしていないと当たり判定がありません。
あとはHierarchy欄でSqareをコピペして、自分好みのステージを作りましょう。
プレイヤーの作成
今回は四角をプレイヤーにします。
手順
1.「ステージの作成」の手順でもう1個Sqareを作る
(大きさを変えてなければコピペで良い)
2.名前をPlayerにする
3.Inspector欄の一番下にあるAdd Componentを押す
4.Playables > Playable Director を選択する
5.もう1度Add Componentを押す
6.Physics 2D > Rigidbody 2D を選択する
これでプレイヤーの作成ができました。
ここからプレイヤーが移動・ジャンプをできるようにしていきます。
プレイヤーの移動
手順
1.Inspector欄の一番下にあるAdd Componentを押す
2.Componentの上の検索欄からScript Machine と検索し選択する
3.Inspector欄にあるScript Machineの項目のNewを押し、ファイルを作成する
4.Script Machineの項目のEdit Graphを押す
5.画面サイズを大きくし、右クリックで必要なノードを作成しながら以下のように作る
5の工程について補足説明します。
Get Axisの中でHorizontalと入力することで、キーボードの←と→の入力を受け付けるようにしています。
Multiplyは速さの調整をしているだけなので、数字は0.3じゃなくても良いです。
TrnslateのXにつなげることで、プレイヤーが横方向に移動するようにしています。
これでプレイヤーが移動できるようになりました。
プレイヤーのジャンプ
今回はState Machineを使う方法でジャンプができるようにします。
手順
1.Inspector欄の一番下にあるAdd Componentを押す
2.Componentの上の検索欄からState Machine と検索し選択する
3.Inspector欄にあるState Machineの項目のNewを押し、ファイルを作成する
4.State Machineの項目のEdit Graphを押す
5.画面サイズを大きくし、右クリックでCreate Script Stateを選択する
6.それぞれのノードで右クリックをしてMake Transitionを選択し、以下のようにつなげる
7.上の矢印の方のやつをクリックして以下のように作る
8.下の方のやつをクリックして以下のように作る
9.右側のノードの名前のところをダブルクリックして以下のように作る
10.Inspector欄のRigidbodey 2Dの項目で、Gravity Scaleを2.5にし、Freeze RotationのZにチェックを入れる
7~10の工程について補足説明します。
State Machine内で画面遷移したら左上の方にあるPlayerを押すことで元の画面に戻ることができます。
7のGet Keyで、ジャンプするときに押すボタンを設定しています。
9のForceと10のGravity Scaleでプレイヤーのジャンプ力を設定しています。好きな数字に変えて良いです。
10のRotationのZにチェックを入れることで、プレイヤーの挙動がおかしくなるのを防いでいます。
これでプレイヤーがジャンプできるようになりました。
さいごに
今回紹介した方法の通りに作ることによって、2Dアクションゲームを作るための基盤がある程度できたと思います。
ちなみに今回紹介した方法通りに作ると、プレイヤーが壁に向かってジャンプすると壁に触れた後高くジャンプしてしまいます。どうやって直せばいいのかわかりません。助けてください。