Доброго времени суток!
Други, поделитесь дельным советом, а то и строчкой кода.
Делаю 2d Side Scroller. Загвоздка в слежении камеры за персонажем.
Камера перспективная, с Offset-ом относительно перса по «у» = 2, по «х» пусть будет 0
Движение камеры кодом:
public Transform target;
Vector3 velocity = Vector3.zero;
public float smoothTime = 1;
void Update ()
{
Vector3 TargetPos = target.position;
TargetPos.z = transform.position.z;
TargetPos.y = transform.position.y;
Vector3 newPos = Vector3.SmoothDamp(transform.position, TargetPos, ref velocity, smoothTime);
transform.position = newPos;
}
}
Суть.
Есть два варианта движения камеры:
1. Камера следит только за горизонтальным передвижением перса (прыжки и подъёмы/спуски НЕ смещают вид камеры).
2. Камера следит как за горизонтальным, так и за вертикальным перемещением (камера «строго» следует за персом (учитывая прыжки и подъёмы/спуски)).
И вот тут-то, и хотелось бы (очень) сделать 3-й вариант, а именно:
что-то вроде «динамического Оffset-а» по оси «у».
Т.е. в зависимости от высоты подъёма персонажа (на холмы и проч.) offset камеры по «у» постепенно бы приходил к нулю (от изначального у=2), а то и вовсе уходил в минус (на какой-нибудь вершине).