当サイトではPRを含む商品リンクを使用しております。

Unity2Dサイドビューゲームの歩きとジャンプだけPlayerスクリプトの作り方

Unity

サイドビュー2Dでプレイヤーを歩きとジャンプ操作をできるようにする最も基本のスクリプトを配布します。

PlayerMoveJumpOnly2/PlayerController.cs at main · KidaiRinboku/PlayerMoveJumpOnly2
Contribute to KidaiRinboku/PlayerMoveJumpOnly2 development by creating an account on GitHub.

あらかじめ用意するもの

Playerキャラクター用の画像

  • お好みの画像をAssets配下に格納してUnityに取り込む
  • Player用画像のSprite Editor設定で、ピボットをBottomCenterに。地面との当たり判定を正確に行うために一番下にずらしています(ゲーム上のオブジェではなく、素材用の画像を選択すると出るメニュー)
  • シーンビューにドラッグドロップして設置

Playerキャラクター設定

  • Playerに好きな形のCollider2Dで当たり判定を設定。ゲームを実行して何故かPlayerが浮く場合はピボットに合わせて下方に当たり判定がずれているので適宜動かす。
  • PlayerにアタッチされているSprite Renderにて、Flip Xオプションを使用してPlayerを向かせたい方向に右か左か調整する
  • Rigid Body2Dをアタッチ Z軸の回転をとめるため freez Z をONにする(オフにすると慣性にのってめっちゃキャラが回る)

Physical Material 2D(物理演算)

  • プロジェクトビューの何もない位置で右クリック -> Create -> 2D -> Physical Material 2D
  • 今回は摩擦(Friction)と反発(Bounciness)は不要なので0に
  • Playerキャラクターの -> 先ほど設定した好きな形のCollider2D -> Material にドラッグドロップで設定

地面

  • 地面用の画像をゲーム上に設置する
  • Collider2Dで当たり判定を設定する
  • Layerに地面用の名前を追加して、それを設定する(地面を選んだ時にインスペクタービュー1番上にあるメニュー)

⇩前回記事のソースなので、少し異なる部分もありますが使えそうな素材があればご自由におつかいください

GitHub - KidaiRinboku/MusicChangeTest
Contribute to KidaiRinboku/MusicChangeTest development by creating an account on GitHub.

歩きとジャンプだけPlayerControllerの使い方

  • GitHubからPlayerControllerをダウンロードAssetフォルダ配下の好きな位置に格納
  • Player用のオブジェクトにアタッチ
  • Player用オブジェクトのインスペクタービュー->PlayerControllerの設定値を指定する
  • speed 歩く速さ
  • Jump Pw ジャンプ力
  • Ground Layer 地面に指定したレイヤー

ゲームを実行してみる!

質問はお気軽にXまで!

不具合備忘録

プレイヤーを1方向に歩かせ続けると、立ち止まってしまうことがある

地面のコリジョン(Collider)を可能な限り減らしましょう。

複数個の地面を置いて繋げた時、地面のプレハブから設置した場合、プレハブにコリジョンが含まれていると、重なっている部分やつなぎの部分で当たり判定が正しく行われない可能性があります。

地面のコリジョンは可能な限りシンプルに、見た目上は複数の地面が繋がっている場合でも、

コリジョンを一つにまとめると挙動が安定します。

コメント

タイトルとURLをコピーしました