Я пытаюсь написать скрипт для слежения за камерой для своей игры в вертикальный платформер, я просмотрел много уроков и нашел несколько, которые работают в определенной степени, но не совсем так, как мне нужно.
По сути, я хочу создать ту же логику, которую используют игры Mario, когда решают, что камера должна следовать за игроком, а когда нет, но вместо этого по оси Y ниже приведен пример из игр Mario:
Ниже приведено то, что я пытался сделать, я не получаю ошибок, но камера остается неподвижной (она ничего не делает), а cameraLeadingUp и CameraLeadingDown никогда не становятся истинными в инспекторе.
void Start()
{
camHeight = Camera.main.orthographicSize;
camWidth = camHeight * Camera.main.aspect;
cameraLeadingUp = true;
cameraLeadingDown = false;
}
void FixedUpdate ()
{
Vector3 temp = transform.position;
if (cameraLeadingUp)
{
if (playerLocation.position.y < camHeight / 0.25f)
{
cameraLeadingDown = true;
cameraLeadingUp = false;
}
}
else if (cameraLeadingDown)
{
if (playerLocation.position.y > camHeight / 0.25f)
{
cameraLeadingUp = true;
cameraLeadingDown = false;
}
}
if (cameraLeadingDown)
{
temp.y = Mathf.Min(camHeight / 0.90f, playerLocation.position.y);
}
if (cameraLeadingUp)
{
temp.y = Mathf.Max(camHeight / 0.90f, playerLocation.position.y);
}
transform.position = temp;
}