Может кто-то подсказать как, собственно, ограничить выход камеры за указанные границы?
Пробовал следующий скрипт:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Camera : MonoBehaviour {
public Transform target;
public int smoothTime = 5;
// max Y
[Space]
[Space]
public bool YMaxEnabled = false;
public float YMaxValue = 0;
// min Y
[Space]
[Space]
public bool YMinEnabled = false;
public float YMinValue = 0;
private void FixedUpdate()
{
Vector3 targetPos = target.position;
if (target != null)
{
transform.position = Vector3.Lerp(transform.position, new Vector3(transform.position.x, target.position.y, transform.position.z), Time.deltaTime * smoothTime);
}
//vertical (y)
else if (YMinEnabled && YMaxEnabled)
{
targetPos.y = Mathf.Clamp(target.position.y, YMinValue, YMaxValue);
}
else if (YMinEnabled)
targetPos.y = Mathf.Clamp(target.position.y, YMinValue, target.position.y);
else if (YMaxEnabled)
targetPos.y = Mathf.Clamp(target.position.y, target.position.y, YMaxValue);
}
}
но, к сожалению он не работает, камера все-равно продолжает выходить за указанные границы (Нужно ограничить только вертикаль)Добавлено (22 Июля 2018, 18:35)
---------------------------------------------
Нашел решение. Кому интересно:
var p = transform.position;
p.y = Mathf.Clamp(p.y, minY, maxY);
transform.position = p;