【Unity】シンプルな移動用スクリプト

スクリプト

「CharacterController」コンポーネントをアタッチしたオブジェクトに使用する。

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

public class PlayerController : MonoBehaviour
{

    public float speed = 6.0F;       //歩行速度
    public float gravity = 20.0F;    //重力の大きさ

    private CharacterController controller;

    void Start()
    {
        controller = GetComponent<CharacterController>();
    }

    void FixedUpdate()
    {
        var h = Input.GetAxis("Horizontal");
        var v = Input.GetAxis("Vertical");

        Vector3 moveDirection = new Vector3(h, 0, v);
        moveDirection *= speed;
        moveDirection.y -= gravity;

        // キャラクターを移動
        controller.Move(moveDirection * Time.deltaTime);

        // キャラクターを進行方向に回転
        Vector3 rotDirection = new Vector3(moveDirection.x, 0, moveDirection.z).normalized;
        if (rotDirection.magnitude > 0.05f)
        {
            transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(rotDirection), 0.1f);
        }
    }
}

参考リンク

qiita.com