どこまでも自由な日々

パソコン初心者主婦のブログです。

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に代入するそうだ。??

とりあえずコードをかく。

でアタッチ、実行しようとしたらエラー。

f:id:moph-moph:20150529013032p:plain

 

なんか前もこういうエラー出たような気がしてきた!

そうそう、Unity5だとなんか取得しないといけない。

こちらを参考にさせていただいた。が、動かない…

f:id:moph-moph:20150529013948p:plain

あ、どっかに全角の空白があるらしい。恥。

うんうん、左右の入力で動くようになりました。

 

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;//使用
    }
}

 

続きます。

 

f:id:moph-moph:20150529014804p:plain