[unity3d日本語チュートリアル]玉転がしの作り方 第8回『スクリプトによるキャラクターの移動』中編

2019年3月18日

前回のチュートリアル

前回はスクリプトを作成し、玉オブジェクトにくっつける部分をやりました。

まだ読んでいない方はこちらからどうぞ『玉転がしの作り方 第7回『スクリプトによるキャラクターの移動』前編

今回やること

今回はスクリプトにコードを記述してボールを移動させます。

今回はパソコンの矢印キーを押したらプレイヤーが移動するようなコードを書いていきます。

必要な機能は、

1.矢印キーの入力機能
2.入力された方向にボールを移動

です。

今回の中編では1.矢印キーの入力機能を実装し、次回の後編で2.入力された方向にボールを移動を実装します。

それでは、始めていきましょう!

矢印キーの入力機能

矢印キーの入力機能を追加していきましょう。

スクリプトはここの部分に書き込んでいきます。

スクリプト作成段階だとvoid Start()やvoid Update()などの記述がありますが、今回は不要なので消してしまいましょう。

他の部分に関しては最初のうちは『Unityで必要な部分なんだな』程度の認識で良いと思います。

コードの記述

それではコードを記述していきましょう。

先ほどvoid Start()やvoid Update()などが書いてあった部分に

//一秒間に一定の回数呼ばれる
    void FixedUpdate()
    {
        //処理を書く
    }

と記述します。

これは{ }の中に書いた記述が一秒間に一定の回数呼ばれます。

{}の中に入力機能を記述していきましょう。

// 入力をxとzに代入
float x = Input.GetAxis("Horizontal");
float z = Input.GetAxis("Vertical");

上記のコードを記述することで入力機能が追加されます。

コードの解説

簡単に解説すると、

Input.GetAxis("Horizontal")

水平方向、つまり矢印キーの左右の入力を-1から1までの小数で返します。

左のキーを押している間は-1に段々と近づいていき、ずっと押していると-1に至ります。

反対に右のキーを押している間は1に段々と近づいていき、ずっと押していると1に至ります。

そしてその-1から1までの値を変数『x』に格納します。

Input.GetAxis("Vertical");

もほとんど同じで垂直方向、つまり矢印キーの上下に対応してます。

現段階のコード

現在のコードはこのようになっています。

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

public class PlayerController : MonoBehaviour {

    //一秒間に一定の回数呼ばれる
    void FixedUpdate()
    {
        // 入力をxとzに代入
        float x = Input.GetAxis("Horizontal");
        float z = Input.GetAxis("Vertical");
    }
}

まとめ

今回のチュートリアルでは矢印キーの入力を実装しました。

次回のチュートリアルでは入力された矢印の方向に玉が移動するようにしていきます。

次のチュートリアル

次のチュートリアルはこちらからどうぞ『玉転がしの作り方 第9回『スクリプトによるキャラクターの移動』後編