//Create new rotations from an existing rotation.
            public CameraRotation(CameraRotation currentRotation, float rotationDegrees, float duration)
            {
                startTime = Time.time;
                endTime   = startTime + duration;

                this.startRotation = currentRotation.GetCurrentRotation();
                var euler = currentRotation.targetRotation.eulerAngles;

                euler.y       += rotationDegrees;
                targetRotation = Quaternion.Euler(euler);
            }
        protected new void Update()
        {
            base.Update();

            if (currentRotation != null)
            {
                cameraHolder.localRotation = currentRotation.GetCurrentRotation();
                if (floorCamera != null)
                {
                    floorCamera.transform.rotation = transform.rotation;
                    floorCamera.transform.Rotate(new Vector3(90, 0, 0));
                }

                if (currentRotation.IsComplete)
                {
                    currentRotation = null;
                }
            }
        }