スクリプト
「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);
}
}
}