TksLab

IT系ブログ

【Unity】3D射的ゲームを作ってみる②(左右に移動する人を作る)

スポンサーリンク

「射的」ゲームの続きです。

 

前回は的を作ったので、今回は左右に移動する人を作ってみましょう。

 

3.人を作成する

3-1.オブジェクトを作成

ヒエラルキーウインドウで「People」としてゲームオブジェクトを作成します。

f:id:tkslab:20190109213435p:plain

 

3-2.人を左右に動かす

次に人オブジェクトを左右に移動できるようにしたいので、スクリプトを作成します。

ヒエラルキーウインドウで「People」を選択して、インスペクターウインドウのAdd Componentボタンを押して、虫眼鏡の入力欄にスクリプト名(ここでは「PeopleScript」とします)を入力して、New Script>Create add Addをクリックします。

・プロジェクトウインドウにできたスクリプトはScriptsフォルダに入れておきましょう。

・移動できるように以下のように「PeopleScript」を編集します。

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

public class PeopleScript : MonoBehaviour
{
    // スピード
    public float speed;

    // Start is called before the first frame update
    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {
        // 移動させる
        transform.position = new Vector3(Mathf.Clamp(transform.position.x + Input.GetAxis("Horizontal") * Time.deltaTime * speed, -2.2f, 2.2f), 0.25f, 0f);
    }
}

■移動部分の詳細

・Input.GetAxis("Horizontal")

 →左右の入力を取得します。

・Time.deltaTimeを掛ける

 →実行マシンのスペックを考慮して「最後のフレームを完了するのに要した時間(秒)」を掛けてあげます。これによりどのマシンでも同じ速さになります。

・Mathf.Clamp(x, -min, max)

 →最小値と最大値の間の数値になるように制限をかけられます。

  人オブジェクトが地面オブジェクトの外に出てしまうので制限をかけました。

 

あとはspeedをインスペクターウインドウで3秒にします。

f:id:tkslab:20190109232337p:plain

※おさらい:scriptでpublicとして変数を宣言しているので、インスペクターウインドウに表示されます。

 

これで人が左右に移動できるようになりました。

f:id:tkslab:20190109232634p:plain

 

続きは次回にします。