こんにちは
今回はUnityを使用して1時間(ぐらい)で2Dゲームを作るための備忘録です.
我流かつ適当なので参考になるかは...
- 開発環境
- プロジェクト設定
- アセットを用意
- Tile Paletteの起動
- Tile Palette設定
- Playerを作成
- Playerの設定
- Playerのアニメーション
- Animator設定
- スクリプト
- Scene設定
- 実行
- まとめ
開発環境
Unity 2020.3.25.f1
Windows 10 Home 21H2
プロジェクト設定
ある意味2Dも3Dの一部なので,プロジェクト設定は3Dで大丈夫です(暴論).
(2Dでも大丈夫だと思いますが,今回は3Dで行きます.)
アセットを用意
今回はAsset Storeにある下記アセットを使用します.
ブラウザからUnity Asset StoreにアクセスしてUnityへダウンロードしましょう.
(importはUnity上のPackage Managerから行います.)
Tile Paletteの起動
Window>2D>Tile Paletteを起動します.
Tile Paletteが表示されない人はPackage ManagerからTile Palette Editorをインストールします.
(上の画像の赤線をクリックしてインストール)
Tile Palette設定
Tile Paletteを開いたらCreate New Paletteします.
設定はデフォルトのままで大丈夫だと思います.
作成したらステージの基となるSpriteのPixels Per Unitを変更します.
今回は16*16のSpriteなので数値は16でオッケー(?)です.
次に変更したSpriteをドラッグアンドドロップします.
あとはTile Paletteの筆ボタンを選択して,画面上にステージをお絵描きするだけです.
(蛇足ですが,UnityのSceneの2Dボタンをクリックすると平面になります.)
Playerを作成
ゲームの主人公を作成します.
HierarchyからCreate EmptyしてPlayerと名付けてPrefab化します.
Add Componentから
1. Sprite Renderer
2. Animation
3. Animator
4. Script
5. Rigidbody2D
6. Circle Collider2D
をアタッチ.
Playerの設定
- Animator
Animator ControllerをPlayer用に作成してセット.
- RigitBody2D
- Tag
なんとなくPlayerに変更したけど,今回は意味ないです.
Playerのアニメーション
待機と歩きのアニメーションを作成します.
Pixels Per Unitを32(?)に設定してSceneにドラッグアンドドロップしてアニメーションを保存します.
(画像はRunの場合です.)
Animator設定
Player用に作成したAnimator Controllerを開きます.
ParameterはInt型にしてStateと命名しました.
Stateは画像のように作成して,矢印も設定します.
このとき,Has Exit Timeのチェックを外し,ConditionにStateを設定します.
Idle->WalkはState==0, Walk->IdleはState==1にしました.
スクリプト
こんな感じでスクリプトを書きました.
NULLになりそうな箇所はASSERTするのがデキるプログラマ(かもしれない).
Scene設定
- MainCamera
2DゲームにしたいのでProjectionをOrthographicにします.
また,いい感じに範囲を設定します. - Grid/TileMap
TileMap Collider 2Dを設定します.
ステージの当たり判定ですね.
実行
矢印で移動できるはずです.
(何か忘れてるかもしれない...)
まとめ
途中でクソ雑にまとめてしまいました...
ごめんなさい.