Shooting Game チュートリアル 第02回
すすめていきます。
2.1 読む前におさえておこう
はーい!といったものの、理解はできてないかもしれない。
2.2 Prefabからゲームオブジェクトを作成
2.3 プレイヤーを動かす準備
どちらもOK。
2.4 プレイヤーにスクリプトをアタッチ
そう、「はじめてのUnity」チュートリアルではJSでした。
でも今回からはC#。ちょっとどきどきです。
(筆者はObjective-Cを少し触った程度しか経験ありません)
ということでメモしつつ。
プレイヤーの移動スクリプトは今回
Input.GetAxisRaw(string axisName)
を使う。左が-1、右が1、なにもないときは0を取得。
アナログスティックなどの場合は0と1の間の値も検出できる
Input.GetAxis(string axisName)
を使用する。
キー入力から速度ベクトル(物体の移動する向きと速さをベクトルであらわしたもの)をrigidbody2D.velocityに代入するそうだ。??
とりあえずコードをかく。
でアタッチ、実行しようとしたらエラー。
なんか前もこういうエラー出たような気がしてきた!
そうそう、Unity5だとなんか取得しないといけない。
こちらを参考にさせていただいた。が、動かない…
あ、どっかに全角の空白があるらしい。恥。
うんうん、左右の入力で動くようになりました。
using UnityEngine;
using System.Collections;
public class Player : MonoBehaviour {
public float speed = 5;
private Rigidbody2D rb2; //宣言
void Start() {
rb2 = GetComponent<Rigidbody2D>();//取得
}
void Update () {
float x = Input.GetAxisRaw("Horizontal");
float y = Input.GetAxisRaw("Vertical");
Vector2 direction = new Vector2(x, y).normalized;
rb2.velocity = direction * speed;//使用
}
}
続きます。