Тряска объектов, Character Controller Unity
Я многократно пытался решить ету проблему, но каждый раз что-то идет не так. В итоге я пришел к Character Controller, но опять все трясется.
Вот скрипт отслеживания свайпов:
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UIElements;
public class TouchesInput : MonoBehaviour, IPointerDownHandler, IPointerUpHandler
{
public Vector2 TouchDist;
public Vector2 PointerOld;
int PointerId;
public bool Pressed;
public void GetTouchDist()
{
if (PointerId >= 0 && PointerId < Input.touches.Length)
{
TouchDist = Input.touches[PointerId].position - PointerOld;
PointerOld = Input.touches[PointerId].position;
}
else
{
TouchDist = new Vector2(Input.mousePosition.x, Input.mousePosition.y) - PointerOld;
PointerOld = Input.mousePosition;
}
}
public void OnPointerDown(PointerEventData eventData)
{
Pressed = true;
PointerId = eventData.pointerId;
PointerOld = eventData.position;
}
public void OnPointerUp(PointerEventData eventData)
{
Pressed = false;
}
}
Вот скрипт камеры:
using UnityEngine;
public class CameraController : MonoBehaviour
{
public float sens;
public Transform player;
public TouchesInput touches;
public float Xrot, Yrot, XRotate;
public void LateUpdate()
{
if (touches.Pressed)
{
touches.GetTouchDist();
Xrot = touches.TouchDist.x * sens;
player.Rotate(Vector3.up * Xrot * Time.deltaTime);
}
else
{
touches.TouchDist = new Vector2();
}
}
}
И вот скрипт для перемещения:
using UnityEngine;
public class Movement : MonoBehaviour
{
public CharacterController characterController;
public float movementSpeed;
public FloatingJoystick joystick;
public Vector3 move;
public void Update()
{
float X = joystick.Horizontal;
float Y = joystick.Vertical;
move = transform.right * X + transform.right * 0 + transform.forward * Y;
characterController.Move(move * movementSpeed * Time.deltaTime);
}
}
Ну естественно пока игрок только двигается или только поворачивает камеру то ничего не трясется, но стоит начать делать это одновременно, так все объекты вокруг начинают немного трястись. При чем я не понимаю почему это происходит, если я вращаю камеру как положено в LateUpdate и двигаю персонажа в Update
