Сильные подергивания камеры, при следовании за объектом, Unity
Недавно начала изучать Unity, и начала смотреть различные туториалы, гайды, и т.д. И вот возникла проблема, которая нигде, ни в каких туториалах не рассматривается. Есть 3д игра, в ней за игроком должна следовать камера, игрок едет только по прямой. и вот у камеры постоянные подергивания, и нет плавного следования. Вот скрипт, по которому камера следует игроку.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class FollowPlayer : MonoBehaviour
{
public GameObject player;
// Start is called before the first frame update
Vector3 dif;
void Start()
{
dif = transform.position - player.transform.position;
}
// Update is called once per frame
void Update()
{
transform.position = player.transform.position + dif;
}
}
Можете пожалуйста объяснить как это исправить. Если что (вдруг это нужно), движение игрока реализовано не с помощью сил, а с помощью простого изменения его координат в пространстве (transform.Translate)
Ответы (1 шт):
Задача решаема с помощью линейной интерполяции
transform.position = Vector3.Lerp(
transform.position,
_target.position + _offset,
_speed * Time.deltaTime);
Где _target ссылка на Transform следуемого объекта
_offset это задаваемый Vector, определяющий смещение от точки наблюдения
_speed скорость преследования
В интернете достаточно уроков по этому поводу, на любом желаемом языке, даже есть официальный урок от Unity, где используются более сложные но уже готовые решения https://www.youtube.com/watch?v=537B1kJp9YQ.
Советую изучать готовый инструментарий, а не городить сотню велосипедов, что убьет стремление к разработке, много времени и сил. И поменьше смотреть блогеров, которые едва ли знают какие практики применяются, их возможности это создать передвижение для шарика и камеру привязать нагородив 3 тысячи велосипедов. Удачи в пути!