void Update()
{
Camera c = transform.Find("Main Camera").camera;
Camera oc = c.transform.Find("Overlay Camera").camera;
if(c == null) { return; }
if(Application.isPlaying) {
//DEBUG
/* if(shouldShake){Shake(Random.Range(2.5f, 10),Random.Range(1.0f, 3));}*/
//END DEBUG
//consider replacing these with MoveTo tweens
float dt = Time.deltaTime;
if(iTween.Count(gameObject)==0) {
pivot = Vector3.MoveTowards(pivot, targetPivot, pivotMoveSpeed*dt);
}
distance = Mathf.MoveTowards(distance, targetDistance, cameraMoveSpeed*dt);
tilt = Mathf.MoveTowardsAngle(tilt, targetTilt, tiltSpeed*dt);
rotation = Mathf.MoveTowardsAngle(rotation, targetRotation, rotateSpeed*dt);
} else {
pivot = targetPivot;
distance = targetDistance;
tilt = targetTilt;
rotation = targetRotation;
}
if(pivot != lastPivot) {
transform.localPosition = pivot;
lastPivot = pivot;
}
if(distance != lastDistance) {
c.transform.localRotation = Quaternion.Euler(tilt, 0, 0);
c.transform.position = transform.position+(-c.transform.forward*distance*3);
if(c.orthographic) {
c.orthographicSize = distance;
oc.orthographic = true;
oc.orthographicSize = distance;
}
lastDistance = distance;
}
if(rotation != lastRotation) {
transform.localRotation = Quaternion.Euler(0, rotation, 0);
lastRotation = rotation;
}
if(tilt != lastTilt) {
c.transform.localRotation = Quaternion.Euler(tilt, 0, 0);
c.transform.position = transform.position+(-c.transform.forward*distance*3);
lastTilt = tilt;
}
}