最初に「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の公式リファレンス」で確認してみましょう。