Exemple #1
0
    public void Activate()
    {
        cameraPosition.Set();
        if (cameraType == CameraType.fix)
        {
            CameraManager.FixCamera();
        }
        else if (cameraType == CameraType.pan)
        {
            CameraManager.PanCamera(camDistance);
        }

        if (inputOrientation != null)
        {
            inputOrientation.Ready();
        }
    }
        private void SyncCamera()
        {
            if (_cameraBusy)
            {
                return;
            }
            _cameraBusy = true;

            try {
                var offset = AlignCar ? -Renderer.CarCenter : Vector3.Zero;
                CameraPosition.Set(Renderer.Camera.Position + offset);
                CameraLookAt.Set((Renderer.CameraOrbit?.Target ?? Renderer.Camera.Position + Renderer.Camera.Look) + offset);
                CameraFov = Renderer.Camera.FovY.ToDegrees();
                AlignCameraHorizontally = false;
                AlignCameraVertically   = false;
            } finally {
                _cameraBusy = false;
            }
        }
        protected void LoadCamera(SaveableData o)
        {
            _cameraBusy = true;

            try {
                CameraPosition.Set(o.CameraPosition);
                CameraLookAt.Set(o.CameraLookAt);
                CameraFov = o.CameraFov;
                AlignCar  = o.AlignCar;
                AlignCameraHorizontally               = o.AlignCameraHorizontally;
                AlignCameraHorizontallyOffset         = o.AlignCameraHorizontallyOffset;
                AlignCameraHorizontallyOffsetRelative = o.AlignCameraHorizontallyOffsetRelative;
                AlignCameraVertically               = o.AlignCameraVertically;
                AlignCameraVerticallyOffset         = o.AlignCameraVerticallyOffset;
                AlignCameraVerticallyOffsetRelative = o.AlignCameraVerticallyOffsetRelative;
            } finally {
                _cameraBusy = false;
                UpdateCamera();
            }
        }