【Unity】2Dシューティングを作る ~プレイヤー作成~

unity

プレイするゲームがないなら、自分で作ればいいじゃない!

ということで初心者が Unity を使って「ゲームを作る」ゲームをやっていきます!

今回はプレイヤー作成の記事です

 

スポンサーリンク

プレイヤーの作成

プレイヤーを作るためには「絵(画像)」が必要になります

今回はこちらを使用

 

画像の登録

画像を追加は「プロジェクトビュー」で行います
(初期設定だと左下にあるはず)

 

整理しやすいようにフォルダーから作成します

「Assets」を右クリック⇒作成⇒フォルダー

Imageフォルダーを作成

 

作成したフォルダーに画像を登録します

画像を選択して、フォルダーにドラッグ&ドロップするだけで登録できます

 

プレイヤーを作成

プレイヤーの作成ですが、登録した画像を選択して

「シーンビュー」ドラッグ&ドロップするだけ!

 

「ヒエラルキービュー」にMain Camera以外の物が追加されていたらOK

「シーン(ゲーム)ビュー」にも画像が表示されているはずです

 

このようにUnityを使えば、

ほぼマウス操作のみでプレイヤーを作成できてしまいます!

 

でも、ただ表示されているだけではゲームと言えないですよね…

ということでプレイヤーを操作できるようにしていきます!

 

プレイヤーの操作

とりあえず「キーボード」で操作できるようにしていきましょう

操作するためには「スクリプト」が必要になります

 

スクリプトとは「プログラム」の事です

Unityでは「C#」という言語でプログラミングします

 

スクリプトの作成

スクリプトも画像と同じようにプロジェクトビューに登録します

こちらも整理しやすいようにフォルダーを作成しておくといいでしょう

 

「フォルダー(画像ではScript)」を右クリック⇒作成⇒C#スクリプト

PlayerControllerを作成

 

プレイヤーにスクリプトをアタッチする

プレイヤーに作成したスクリプトの効果を加えます

効果を加えることを「アタッチ」と言います

 

ヒエラルキービューでアタッチしたいゲームオブジェクトを選択(今回はplayer)

「インスペクタービュー」にスクリプトをドラッグ&ドロップするか

「コンポーネントを追加」からスクリプト名を入力して選択します

 

これでプレイヤーに操作用のスクリプトが追加されました!

これで操作ができるはず……もなく

 

スクリプトを編集して操作に対応していきます

 

スクリプトの編集

プロジェクトビューからスクリプトをダブルクリックするとエディターが起動します

しない場合はテキストを編集できるソフト(メモ帳等)で開きましょう
※Visual Studio 2019の無料版をインストールしておいてもいいかも

 

エディターでスクリプトを編集していきます

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerController : MonoBehaviour
{
    public float MoveSpeed = 0.01f;    // 移動値

    // Start is called before the first frame update
    void Start()
    {
    }

    // Update is called once per frame
    void Update()
    {
        // 横(Ⅹ)方向の入力
        float fHorizontalInput = Input.GetAxisRaw("Horizontal");
        // 縦(Y)方向の入力
        float fVerticalInput = Input.GetAxis("Vertical");

        // 位置を更新
        float add_x = fHorizontalInput * MoveSpeed;
        float add_y = fVerticalInput * MoveSpeed;
        transform.Translate(add_x, add_y, 0);
    }
}

 

移動速度の変数を追加

fMoveSpeedは移動速度です

float は小数を表します

public はあっても無くてもどちらでも構いません
※public を付けるとインスペクタービューで値を変更できるようになります

 

入力情報を取得

Inputクラスで入力情報が取得できます

Input.GetAxisRow(axisName) :0、1、ー1で値を返す
Input.GetAxis(axisName)   :ー1~1の間で値を返す

axisName の値で取得する情報が選択できます

Horizontal :X(横)軸の情報を取得
Vertical   :Y(縦)軸の情報を取得

 

位置を更新

「transform.position」 を変更することで、位置を更新することができます

transform.Translate(x,y,z) にキー情報の結果を入れれば、位置が加算されます!

 

インスペクタービューの囲まれている部分を変更しているイメージになります

fMoveSpeed に publicがない版

 

スクリプトを編集して実行すると

「キーボードの上下左右」、「wasd」で移動すると思います

実行はこの三角マーク

 

スクリプトの補足

 

サンプル動画

GetAxisとGetAxisRowで移動の滑らかさが違います

どちらを使用するのかはゲームの仕様によって決めましょう

 

キー情報の設定

他のキーで移動させたい!

 

その場合は「編集⇒プロジェクト設定」

 

「入力マネージャー⇒軸」を開きます

 

水平を開くと各方向ボタンに「left,right,a,d」が設定されています

ここを割り当てたいキーに変更しましょう

垂直も同じように設定可能です

 

さいごに

これでシンプルな移動はできました!

 

次回はフレームレートの設定

 

かれいど

ゲームをしたり、作ったり
色々な事に挑戦していきたい!

サッカー観戦も趣味で
主にJ1リーグを観ています。

かれいどをフォローする
unity
スポンサーリンク
シェアする

コメント