Я делаю двухмерную гоночную игру с боковым скроллером. Игрок — это автомобиль, который движется по уже созданному двухмерному ландшафту. Камера следует за игроком.
Я также хотел создать больше деталей, заставив фон следовать оси Y игрока, чтобы фон не выглядел как простая картинка.
Эффект, который я хочу воспроизвести, заключается в том, что когда игрок прыгает, камера просто отдаляется. Я использую перспективную камеру, поэтому она уменьшает масштаб, перемещая ее немного (больше) от игрока. Эффект не гладкий.
Платформа использует двумерный коллайдер. Движение вызвало у меня укачивание, и я просто не знаю, что я должен делать, чтобы это получилось красиво.
Я пробовал использовать гладкую влажную поверхность, которая давала мне эффект пружины, который здесь не нужен. Я использовал Lerp, который просто не работает вообще, он чертовски медленный, и когда я делаю его быстрым, это такое же нежелательное поведение. MoveTowards
немного работает, но не совсем. Гладкость просто не то, что я хочу.
void FixedUpdate()
{
if (CarController.Instance != null)
{
newPos = TargetPos + camOffSet;
if (!CarController.Instance.IsGrounded && CarController.Instance.CanZoomOut)
{
float zz = Mathf.Clamp(-10 - newPos.y, -20, -10);
newPos.z = Mathf.Clamp(-10 - newPos.y, -20, -10);
newPos.x += (zz * -0.4f);
}
else
{
newPos.z = -10;
}
transform.position = Vector3.MoveTowards(transform.position, newPos, speed * Time.deltaTime);
}
}
Для справки: моя игра очень похожа на Я ненавижу зомби, показанную на этом видео.