(スクリプト)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerMovement : MonoBehaviour
{
public float moveSpeed;
public float turnSpeed;
private Rigidbody rb;
private float movementInputValue;
private float turnInputValue;
void Start()
{
rb = GetComponent<Rigidbody>();
}
void Update()
{
PlayerMove();
PlayerTurn();
}
// 前進・後退のメソッド
void PlayerMove()
{
// 左スティックで操作
movementInputValue = Input.GetAxis("Vertical");
Vector3 movement = transform.forward * movementInputValue * moveSpeed * Time.deltaTime;
rb.MovePosition(rb.position + movement);
}
// 旋回のメソッド
void PlayerTurn()
{
// 右スティックで操作
turnInputValue = Input.GetAxis("Horizontal2");
float turn = turnInputValue * turnSpeed * Time.deltaTime;
Quaternion turnRotation = Quaternion.Euler(0, turn, 0);
rb.MoveRotation(rb.rotation * turnRotation);
}
}
(Input Managerの設定)
*既存の設定を複製した上で、右スティック用に「Name」と「Axis」を設定する。
*「Name」は「コード」の記載と対応させること
(実行結果)
- 左スティックで前進・後退
- 右スティックで左右の旋回ができれば成功です。