вот насочинял код, по причине того, что у меня уровень чуть выше начального он нормально не работает
требуется, чтоб персонаж ходил с учетом угла поворота. Что убрать/докрутить?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class position : MonoBehaviour
{
float camSens = 0.25f;
private Vector3 lastMouse = new Vector3(0, 0, 0);
private Rigidbody rb;
public float speed = 6.0f;
private Vector3 moveVector;
private Vector3 moveVector2;
public Vector3 debug;
public float deb;
void Awake()
{
rb = GetComponent<Rigidbody>();
}
void Start()
{
}
void Update()
{
lastMouse = Input.mousePosition - lastMouse;
lastMouse = new Vector3(0, lastMouse.x * camSens, 0);
lastMouse = new Vector3(0, transform.eulerAngles.y + lastMouse.y, 0);
transform.eulerAngles = lastMouse;
lastMouse = Input.mousePosition;
deb = Input.GetAxis("Horizontal");
// тут начинается то, что не рабоает
if (Input.GetAxis("Horizontal") == 0)
{
moveVector.x = 0;
moveVector.z =0;
}
else
{
moveVector.x = Input.GetAxis("Horizontal") / Mathf.Abs(transform.forward.x);
moveVector.z = Mathf.Abs(transform.forward.x);
}
if (Input.GetAxis("Vertical") == 0)
{
moveVector2.x = 0;
moveVector2.z = 0;
}
else
{
moveVector2.z = Input.GetAxis("Vertical") / Mathf.Abs(transform.forward.x);
moveVector2.x = Mathf.Abs(transform.forward.x);
}
if (Input.GetKey("space"))
{
transform.position = new Vector3(0, 0, 0);
}
else
{
}
deb = Mathf.Abs(transform.forward.x);
rb.MovePosition(rb.position + (moveVector + moveVector2) * speed * Time.deltaTime);
}
}