目的:
キーボードから入力した矢印キーで、プレイヤーキャラクター(に該当するゲームオブジェクト)を操作する。
準備:
・ヒエラルキーにカプセル型のゲームオブジェクトを配置(別にカプセルでなくても、何か視認できるゲームオブジェクトなら何でも良い)
・アセットでスクリプトを新規に作成。このスクリプトには上記のオブジェクトを操作するプログラムを書くので、わかりやすい名前をつけておこう。(例:PlayerManager、以下、便宜上左記の名称を使用)
やり方:
PlayerManagerをVisualStudio(個人の環境によって違う可能性があるので、以下コードエディタと表記)で開く。
全部消して、以下のコードをコピペ。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerManager : MonoBehaviour
{
float x;
float z;
float speed = 0.1f;
// 0.02sec毎に処理を更新する関数
private void FixedUpdate()
{
// 変数を初期化
x = 0;
z = 0;
// 0.02sec毎にxとzへ入力される水平と垂直方向に対する値が代入される
x = Input.GetAxisRaw("Horizontal") * speed;
z = Input.GetAxisRaw("Vertical") * speed;
// 自身(このプログラムがアタッチされているゲームオブジェクト)の位置を更新
transform.position += new Vector3(-x, 0, -z); // 上下左右を反転させて、押したキーとキャラクターの動きにイメージとのズレがないようマイナス記号をつけた
}
}
プログラムを実行すると、スクリプトをアタッチしたゲームオブジェクトが矢印キーで操作できるようになる。
(Y軸方向には移動できない設定なので、前後左右のみ)
ゲームを作る!
と思った時に一番初めにやりたいことって
この、プレイヤーキャラクター(と想定した何か)を矢印キーで操作するって行為だよね
自分で書いたコードによって、プレイヤーキャラクターが自由自在にフィールドを動くと、軽い感動を覚えてテンションが上がる
それがプログラミングのモチベーション