Vector3 boundWTV;
boundWTV = puzzleCamera.WorldToViewportPoint( upperRightBounds.bounds.max );
if( boundWTV.x < 1f )
{
Vector3 destVTW
= puzzleCamera
.ViewportToWorldPoint( new Vector3
( 1f, boundWTV
.y, 0f
) ); Vector3 offset = destVTW - upperRightBounds.bounds.max;
puzzleCamera.transform.position -= offset;
}