ども!カトサンラボのかとこうです。
この記事では、
Unity初心者の方や入門者の方向けの
ゲーム制作情報として
「Unityで2Dのランゲームの基礎を約1時間で制作する講座」
第3回目の内容を解説しております。
前回の記事はこちら → 【Unity 2Dランゲームの基礎制作2】ステージの床とプレイヤーなどの配置
3回目の内容では、
「プレイヤーキャラクターの横移動とジャンプの操作を作る」
という作業を行っていきます。
動画での解説もありますので、
この記事と合わせて参考に
していただけたら幸いです。
動画解説はこちらです。
2Dランゲーム基礎講座:第3回目の目標について
3回目の内容は、
「プレイヤーの横移動とジャンプ操作の作成」
という作業を行っていきますが、
行う作業についての目標を
まとめてみました。
今回の目標
・プレイヤーに当たり判定をつける(コライダー)
・プレイヤーにリジッドボディをつける
・プレイヤー用のC#スクリプトを作る
・プレイヤー用のC#スクリプトにコードを書く
・コードを書いたC#スクリプトをプレイヤーにつける(アタッチする)
・プレイヤーの移動が上手く出来ているかなどをテストプレイで確かめる
今回の作業目標は全部で6つとなります。
1つ1つの作業について詳しく
解説していくので参考にして
頂ければ幸いです。
それでは、次の項目から実際に
作業を行っていきましょう!
プレイヤーに当たり判定をつける
まずはプレイヤーに当たり判定を
つけたいので、ヒエラルキーの
「bird」をクリックします。
そうしたら右側にあるインスペクター
ウインドウから、
「Add Component」
をクリックします。
すると検索窓などのメニューが
出てくるので、検索窓に「b」と
入力しましょう。
そして表示される候補の中から
「Box Collider 2D」
を選んでクリックします。
インスペクターにBox Collider 2Dが
表示されたら当たり判定がついたと
いうことになります。
当たり判定をつけることができたら、
その判定の大きさを調整していきます。
「Box Collider 2D」の項目にある
「Edit Collider」の横のボタンを押します。
するとシーンビューのトリさんの周りの
緑色の枠に■マークがつきます。
その■マークを移動させて
大きさを調整していきましょう。
今回はトリさんの右側の■マークを
動かして、体の近くまで当たり判定を
調整しました。
当たり判定を動かしたら、また
「Edit Collider」の横のボタンを
押して当たり判定の調整作業を終了させます。
これで、プレイヤーに当たり判定を
つけるという作業は完了となります。
プレイヤーにリジッドボディをつける
次はプレイヤーにリジッドボディを
つける作業になります。
リジッドボディは、Unityで物理的な
挙動をさせる「物理エンジン」を
使う時に必要になる機能です。
つけることで重力などの設定が
できるようになります。
当たり判定をつけた時と同じように、
まずはヒエラルキーの「bird」を
クリックします。
そしてインスペクターウインドウの
「Add Component」
をクリックします。
すると、検索窓などのメニューが
表示されるので、
表示された検索窓に今度は「r」と
入力します。
そして表示される候補の中から
「Rigidbody 2D」
を選んでクリックしましょう。
インスペクターを見て
「Rigidbody 2D」
が表示されていれば
作業は完了です。
プレイヤー用のC#スクリプトを作る
次はプレイヤーの移動やジャンプを
させるために必要なC#スクリプトを
作る作業です。
C#スクリプトは、Unityエディタの
下側のプロジェクトウインドウから
作っていきます。
プロジェクトウインドウの
「Project」というタブの下の
部分にある「+ボタン」を押します。
そうするとメニューが表示されるので
その中から、
「C# Script」
を選んでクリックします。
するとプロジェクトウインドウの中に
新しくC#スクリプトのファイルが
作成されるので名前をつけます。
今回は「Player」という名前をつけました。
これでプレイヤー用の
C#スクリプトを作るという
作業は完了となります。
プレイヤー用のC#スクリプトに移動とジャンプ処理のコードを書く
作成したC#スクリプトを
ダブルクリックして開きましょう。
「Visual Studio」が立ち上がって
コードを書くウインドウが表示されます。
ここに以下のコードを書いていきます。
コピペしても大丈夫です!
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Player : MonoBehaviour
{
public float speed = 5f; // 横に移動する速度
public float jumpP = 300f; // ジャンプ力
Rigidbody2D rbody; // リジッドボディを使うための宣言
// Start is called before the first frame update
void Start()
{
// リジッドボディ2Dをコンポーネントから取得して変数に入れる
rbody = GetComponent<Rigidbody2D>();
}
// Update is called once per frame
void Update()
{
// ジャンプをするためのコード(もしスペースキーが押されて、上方向に速度がない時に)
if (Input.GetKeyDown(KeyCode.Space) && rbody.velocity.y == 0)
{
// リジッドボディに力を加える(上方向にジャンプ力をかける)
rbody.AddForce(transform.up * jumpP);
}
}
private void FixedUpdate()
{
//リジッドボディに一定の速度を入れる(横移動の速度, リジッドボディのyの速度)
rbody.velocity = new Vector2(speed, rbody.velocity.y);
}
}
コードの一応の説明も記載して
おきましたので参考になれば幸いです。
コードを書いたC#スクリプトをプレイヤーにつける
次はプレイヤーに移動の処理を書いた
C#スクリプトを付ける作業を行います。
まずはヒエラルキーの
「bird」をクリックします。
そして、プロジェクトウインドウにある
「プレイヤー用のC#スクリプト」
の上でクリックをしたまま
移動させていき、
birdのインスペクターの
Add Componentのあたりへ
もっていってクリックを離します。
そうするとプレイヤー用の
C#スクリプトが付いて、
birdのインスペクターに表示されます。
これでプレイヤーにC#スクリプトを
付けるという作業は完了です。
プレイヤーの移動やジャンプの操作をテストプレイで確かめる
C#スクリプトをbirdにつけたら、
テストプレイをして、
「プレイヤーが横に移動したり、ジャンプができるのか」
ということを確かめていきます。
テストプレイは、Unityエディタの
シーンビューの上にある再生ボタンを
押すと出来ます。
テストプレイをするとトリさんが
横に動いていくと思います。
そして、スペースキーを押すことで
ジャンプができればOKです。
またジャンプ中にスペースキーを
押しても2段ジャンプにならないかも
確かめておきましょう。
これでテストプレイをして
プレイヤーの操作を確かめるという
作業は完了になります。
無事出来ていれば今回の作業は終了です。
お疲れ様でした!
Unity2Dランゲームの基礎制作講座・第3回目のまとめ
今回の記事では、
「Unityで2Dのランゲームの基礎を約1時間で制作する講座」
の第3回目の作業内容について
お伝えさせて頂きました。
3回目の作業目標は最初にも
書きましたが、以下の内容と
なっております。
今回の目標
・プレイヤーに当たり判定をつける(コライダー)
・プレイヤーにリジッドボディをつける
・プレイヤー用のC#スクリプトを作る
・プレイヤー用のC#スクリプトにコードを書く
・コードを書いたC#スクリプトをプレイヤーにつける(アタッチする)
・プレイヤーの移動が上手く出来ているかなどをテストプレイで確かめる
細かく6個に分けて今回の作業について
解説をさせて頂きました。
今回の作業でプレイヤーが動くように
なったので、また一歩ランゲームの
完成に近づきましたね!
次回の4回目では、
「カメラの移動処理の作成」
という作業を行っていきます。
今の状態だとプレイヤーのトリさんが
横に動いていくと画面外に出て
しまいますが、
次の作業でトリさんに合わせて
カメラを動くようにしたいと思います。
また続きを見て頂ければとても嬉しいです!
良かったらまた見にきてくださいね。
今回の記事や動画の内容で1つでも
お役に立つ部分があれば嬉しく思います!
ここまで読んでいただきありがとうございました!
4回目はこちらの記事になります → 【Unity 2Dランゲームの基礎制作4】カメラが追従する処理を作る