Как реализовать плавное движение камеры?
Когда я меняю направление движения по X, камера меняет тоже направление (на видео более понятно) => https://skr.sh/v4yFemW4s8k?a
У меня есть небольшой код делает само движение камеры плавным, но не решает этой проблемы (прикладываю видео как он работает) => https://skr.sh/v4yNMKxPC4H?a
Нужно чтобы когда игрок поворачивался в другую сторону, камера не поворачивалась вместе с ним, но продолжала следовать за ним
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraFollow : MonoBehaviour {
[HideInInspector]
public Vector3 targetPos;
private float smoothMove = 1f;
void Start() {
targetPos = transform.position;
}
void Update() {
transform.position = Vector3.Lerp(transform.position, targetPos, smoothMove * Time.deltaTime);
}
}
Ответы (1 шт):
Автор решения: Psyxoz0x13
→ Ссылка
В недавнем проекте для следующей за персонажем камеры я использовал вот этот код, может он и тебе поможет:
public class FollowCamera : MonoBehaviour
{
[SerializeField] private Transform _cameraTarget = null;
[SerializeField] private float _smoothTime = 0.2f;
[SerializeField] private float _moveOrientationScale = 0f;
private Vector3 _velocity = Vector3.zero;
private void LateUpdate()
{
var targetPosition = new Vector3(_cameraTarget.position.x, _cameraTarget.position.y, transform.position.z);
AddMoveOrientation(ref targetPosition);
transform.position = Vector3.SmoothDamp(transform.position, targetPosition, ref _velocity, _smoothTime);
}
private void AddMoveOrientation(ref Vector3 targetPosition)
{
if (_velocity.x > 0)
{
targetPosition += Vector3.right * _moveOrientationScale;
}
else
{
targetPosition -= Vector3.right * _moveOrientationScale;
}
}
}