Я делаю игру, с видом от первого лица, но когда персонаж поворачивается, то `Player.transform.Translate` двигает его глобально. Пробовал через rigidbody, но не помогло. Как это исправить?
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
[Header("Player")]
public GameObject Player;
[Header("Move")]
public bool Move;
public float MoveSpeed;
private Vector3 MoveDir;
private float PlayerSpeed;
[Header("Run")]
public bool Run;
public float RunSpeed;
[Header("Jump")]
public bool Jump = true;
public float JumpForce = 4f;
[HideInInspector] public bool IsGround;
void Awake() {
if (!Move) {
MoveSpeed = 0;
}
if (!Run) {
RunSpeed = MoveSpeed;
}
}
private void FixedUpdate() {
float Horizontal = Input.GetAxis("Horizontal");
float Vertical = Input.GetAxis("Vertical");
if (Input.GetAxis("Fire3") == 0) {
PlayerSpeed = MoveSpeed;
}
if (Input.GetAxis("Fire3") > 0) {
PlayerSpeed = RunSpeed;
}
MoveDir = new Vector3(Horizontal * PlayerSpeed, 0f, Vertical * PlayerSpeed);
Player.transform.Translate(MoveDir);
}
}