Получение плавного отклика между горизонтальной привязкойC#

Место общения программистов C#
Ответить
Anonymous
 Получение плавного отклика между горизонтальной привязкой

Сообщение Anonymous »

В настоящее время я реализовал так, чтобы мой персонаж наклонялся в направлении, в котором он идет, на горизонтальном слое. Таким образом, если он нажимает «D», он наклоняется вправо, а «А» — влево.
У меня это работает, но: если я нахожусь в состоянии наклона в определенную сторону, но нажмите с другой стороны он привязывается к 0, а затем движется дальше, наклоняясь к другой стороне.
Я могу себе представить, используя какой-нибудь Quaternion.Lerp или какой-нибудь Mathf. для сглаживания вращения, но я не знаю как.
Вот код:

Код: Выделить всё

    private void HandleMouseLook()
{
mouseX = Input.GetAxis("Mouse X") * mouseSensitivity * 5 * Time.deltaTime;
mouseY = Input.GetAxis("Mouse Y") * mouseSensitivity * 5 * Time.deltaTime;

Vector2 targetMouseDelta = new Vector2(mouseX, mouseY);

float tilt = -Input.GetAxis("Horizontal") * tiltAmount; // TILTING

// SMOOTHING AND ACCELERATION
if (mouseSmoothing == true)
{

Vector3 v = transform.rotation.eulerAngles;
currentMouseDelta = Vector2.SmoothDamp(currentMouseDelta, targetMouseDelta, ref currentMouseDeltaVelocity, smoothTime, acceleration);

rotationX -= currentMouseDelta.y;                                           // OBEN UND UNTEN ROTATION
rotationX = Mathf.Clamp(rotationX, -upperLookLimit, lowerLookLimit);
playerCamera.transform.localRotation = Quaternion.Euler(rotationX, 0f, tilt);
transform.rotation *= Quaternion.Euler(0f, currentMouseDelta.x, v.z);        // LINKS UND RECHTS ROTATION

Debug.Log(tilt);
}
tiltAmount в настоящее время установлено на 0,7;
Это означает, что камера наклоняется только на максимум. -0,7 по z или +0,7 по z.
Если я не равен 0 по оси Z и наклоняюсь в противоположном направлении, он привязывается к 0.
Как мне добиться плавного перехода между этим?< /п>

Подробнее здесь: https://stackoverflow.com/questions/786 ... l-snapping
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»