Roll-a-ball の制作(8) Playerオブジェクトの動作を変更する

Unity公式サイトのチュートリアルに沿って、
Roll a ballというサンプルゲームを制作する8回目です。

learn.unity.com


前回は、Playerオブジェクトが動作するようC#のコードを修正しました。
今回はPlayerオブジェクトの動作を変更していきます。

game-seisaku.hatenablog.com

今回はC#でPlayerオブジェクトの動作を記述していきます。

 

■ Playerオブジェクトの移動速度を変更する

前回までのPlayerControllerのコードを以下のように修正します。

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

public class PlayerController : MonoBehaviour
{
    public float speed = 0.0f;

    private Rigidbody rb;
    private float movementX;
    private float movementY;

    // Start is called before the first frame update
    void Start()
    {
        rb = GetComponent<Rigidbody>(); 
    }


    void OnMove(InputValue movementValue)
    {
        Vector2 movementVector = movementValue.Get<Vector2>();
        
        movementX = movementVector.x;
        movementY = movementVector.y;
        
    }
    
    private void FixedUpdate()
    {
        Vector3 movement = new Vector3(movementX, 0.0f, movementY);
        rb.AddForce(movement * speed);

    }

}

変数 speed をpublic で 宣言すると、

Unityエディタ上のインスペクタに、speedというプロパティが現れるのでここに

例えば10と値を入れてみます。

 

再生してみると、おぉ!Σ(・□・;)確かに入力した値分Playerの移動速度が速くなっていますね。

f:id:Yamakawa-Yoshi:20200817003102g:plain

今回はここまでにします。

次回はカメラ位置の設定を行います。