#c# #unity3d #camera #2d
#c# #Unity3D #Камера #2d
Вопрос:
Я пытаюсь написать сценарий слежения за камерой для моей вертикальной платформерной игры, я просмотрел много руководств и нашел несколько, которые работают в определенной степени, но не совсем то, что мне нужно.
По сути, я хочу создать ту же логику, которую используют игры 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;
}
Комментарии:
1. Вы устанавливаете
cameraLeadingUp = false;
иcameraLeadingUp = true;
, но ни один из них не может быть истинным, если другой не будет истинным первым2. Спасибо @CamiloTerevinto, это имеет смысл, я не уверен, что делать, чтобы это исправить, есть предложения?
3. Предложение: не используйте
Update
useFixedUpdate
(на основе физики), что даст вам более плавное отслеживание камеры.4. Хорошо, теперь я отредактировал приведенный выше код, и, похоже, он делает то, чего я пытаюсь достичь, но в обратном направлении. Он удерживает моего игрока в центре экрана, если он не достигнет границ, а затем камера остановится, мне нужно обратное, где камера остается неподвижной, если игрок не выходит за пределы границ
5. Какова ценность camheigh ?