你可以做:
public Transform Target1;
public Transform Target2;
public float sensetivity = 1f;
public float maxOrthographicSize = 10f;
Camera thisCam;
float minOrthographicSize = 5f;
private void Start() {
thisCam = GetComponent<Camera>();
minOrthographicSize = thisCam.orthographicSize;
}
void Update()
{
thisCam.orthographicSize = minOrthographicSize + Mathf.Clamp(Vector2.Distance(Target1.position, Target2.position) * sensetivity, 0f, maxOrthographicSize);
}
在此解决方案minOrthographicSize
中,只有在Target1
并且Target2
处于相同位置时才会发生,以改变您可以执行的操作:
public Transform Target1;
public Transform Target2;
public float minOrhtographicDistance = 5f;
public float sensetivity = 1f;
public float maxOrthographicSize = 10f;
Camera thisCam;
float min = 5f;
private void Start() {
thisCam = GetComponent<Camera>();
min = thisCam.orthographicSize;
}
void Update()
{
thisCam.orthographicSize = min + Mathf.Clamp((Vector2.Distance(Target1.position, Target2.position) - minOrhtographicDistance) * sensetivity, 0f, maxOrthographicSize);
}
在此解决方案中,正交尺寸将minOrthographicSize
用于minOrhtographicDistance
距离,然后会根据目标之间的距离而变化。