1、画面及びプレーヤーの設定

最初に「2D風の画面設定」を行います。

・シーンギズモの「Y(黄緑色)」をクリックして、「真上から見るモード」に変更しましょう。

・次に「Directional Light」の高さを「30」にしましょう。

(画面背景の色を変える)

・「Main Camera」をクリック

・「Clear Flags」を「Solid Color」に変更

・「Background」をクリックして好きな色に変更する。


画面設定ができたら次は、プレーヤー(自機)を配置します。

「StarSparrow」→「Prefabs」→「Example」を順にクリック。5種類のプレーヤーデザインが用意されているので好きな物を選んで「開発シーンにドラッグ&ドロップ」してください。

・名前を「Player」に変更しましょう。

「Positionは(0,0,0)」「Rotationは(0,180,0)」に変更してください。これで画面上向きにプレーヤーが設定できます。

*Playerの大きさ(Scale)については好きなように設定してください。


(Playerを動かす)

・新規C#スクリプトを作成→名前を「PlayerMovement」に変更しましょう。

・下記のコードを記載してください。

・コードが書けたらチェック→「Player」オブジェクトにスクリプトをつけましょう。

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

public class PlayerMovement : MonoBehaviour {

	public float moveSpeed = 0.2f;


	void Update () {

		float moveH = Input.GetAxis ("Horizontal") * moveSpeed;
		float moveV = Input.GetAxis ("Vertical") * moveSpeed;
		transform.Translate (moveH, 0.0f, moveV);
		
	}
}

再生ボタンを押して動きを確認しましょう。

キーボードの十字キーで前後左右に動けばOKです。

(ここがポイント!)

「左右」と「前後」の動きが、十字キーの入力と「逆」になっていると思います。

これはなぜでしょうか?

理由を考えてみましょう。

自分で理由を考えたら、下記のようにコードを変更しましょう。

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

public class PlayerMovement : MonoBehaviour {

	public float moveSpeed = 0.2f;


	void Update () {

		// Inputの前に「-」を付ける。
		float moveH = -Input.GetAxis ("Horizontal") * moveSpeed;
		float moveV = -Input.GetAxis ("Vertical") * moveSpeed;
		transform.Translate (moveH, 0.0f, moveV);
		
	}
}

変更ができたらチェック→再生して動きを確認しましょう。


(プレーヤーが移動できる範囲を制限する)

今のままではプレーヤーが画面の外に出てしまいます。

そのためプレーヤーが移動できる範囲を制限してみましょう。

次のコードを「追加」(★部分)してください。

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

public class PlayerMovement : MonoBehaviour {

	public float moveSpeed = 0.2f;

	// ★追加
	private Vector3 pos;

	void Update () {

		// Inputの前に「-」を付ける。
		float moveH = -Input.GetAxis ("Horizontal") * moveSpeed;
		float moveV = -Input.GetAxis ("Vertical") * moveSpeed;
		transform.Translate (moveH, 0.0f, moveV);

		// ★追加
		Clamp();
	}
		
	// ★追加
	// プレーヤーの移動できる範囲を制限する。
	void Clamp(){

		// プレーヤーの位置情報を「pos」という箱の中に入れる。
		pos = transform.position;

		pos.x = Mathf.Clamp (pos.x, -7, 7);
		pos.z = Mathf.Clamp (pos.z, -5, 5);

		transform.position = pos;
	}
}

・コードのチェックまで完了したら、再生して移動範囲を確認してみましょう。

*実際の移動範囲は自由に決めて変更してください。

(ポイント)

範囲を決める場合には「Clamp」という関数(メソッド)を活用します。

Clampの使い方は「Unityの公式リファレンス」で確認してみましょう。