Beispiel #1
0
    private CameraControllerTransition getTransition(CameraController fromController, CameraController toController)
    {
        CameraControllerTransition cameraControllerTransition = fromController.GetTransitionToOtherController(toController);

        if (cameraControllerTransition == null)
        {
            cameraControllerTransition = toController.DefaultControllerTransitionIn;
            CameraControllerTransition defaultControllerTransitionOut = fromController.DefaultControllerTransitionOut;
            if (cameraControllerTransition == null)
            {
                cameraControllerTransition = defaultControllerTransitionOut;
            }
            else if (defaultControllerTransitionOut != null && defaultControllerTransitionOut.DefaultTransitionOutPriority > cameraControllerTransition.DefaultTransitionInPriority)
            {
                cameraControllerTransition = defaultControllerTransitionOut;
            }
        }
        return(cameraControllerTransition);
    }
Beispiel #2
0
    private bool updateActiveCameraControllers()
    {
        bool             result           = false;
        CameraController cameraController = getCurrentGoalPlannerController();

        if (currentGoalPlannerController == null)
        {
            currentGoalPlannerController = cameraController;
            currentGoalPlannerController.Activate();
            result = true;
        }
        else if (cameraController != currentGoalPlannerController)
        {
            CameraControllerTransition transition = getTransition(currentGoalPlannerController, cameraController);
            snapMove |= forceCutTransition;
            currentGoalPlannerController.Deactivate();
            currentGoalPlannerController = cameraController;
            currentGoalPlannerController.Activate();
            moveBlendState.Abort();
            if (transition == null || snapMove)
            {
                maxMoveSpeed = -1f;
            }
            else if (transition.TransitionType == CameraControllerTransition.CameraTransitionType.CUT)
            {
                maxMoveSpeed = -1f;
                bool snapMove2 = snapMove;
                snapMove = true;
            }
            else if (transition.TransitionType == CameraControllerTransition.CameraTransitionType.MAX_SPEED)
            {
                if (transition.LimitMoveSpeed)
                {
                    maxMoveSpeed = transition.MaxMoveSpeed;
                }
            }
            else if (transition.TransitionType == CameraControllerTransition.CameraTransitionType.CURVE)
            {
                if (transition.Duration <= 0f)
                {
                    maxMoveSpeed = -1f;
                    bool snapMove3 = snapMove;
                    snapMove = true;
                }
                else
                {
                    moveBlendState.FirstFramePos      = base.transform.position;
                    moveBlendState.Curve              = transition.Curve;
                    moveBlendState.Duration           = transition.Duration;
                    moveBlendState.ElapsedTime        = 0f;
                    moveBlendState.IsBlending         = true;
                    moveBlendState.DampenMovingTarget = transition.DampenMovingTarget;
                    moveBlendState.MaxSpeed           = (moveBlendState.DampenMovingTarget ? transition.MaxMoveSpeed : (-1f));
                    maxMoveSpeed = ((moveBlendState.DampenMovingTarget && transition.MaxMoveSpeed > -1f) ? 0f : (-1f));
                }
            }
            result = true;
        }
        CameraController cameraController2 = getCurrentFramerController();

        if (currentFramerController == null)
        {
            currentFramerController = cameraController2;
            currentFramerController.Activate();
            result = true;
        }
        else if (cameraController2 != currentFramerController)
        {
            CameraControllerTransition transition = getTransition(currentFramerController, cameraController2);
            currentFramerController.Deactivate();
            currentFramerController = cameraController2;
            currentFramerController.Activate();
            aimBlendState.Abort();
            if (transition == null || snapAim)
            {
                maxAimSpeed = -1f;
            }
            else if (transition.TransitionType == CameraControllerTransition.CameraTransitionType.CUT)
            {
                maxAimSpeed = -1f;
                bool snapAim2 = snapAim;
                snapAim = true;
            }
            else if (transition.TransitionType == CameraControllerTransition.CameraTransitionType.MAX_SPEED)
            {
                if (transition.LimitAimSpeed)
                {
                    maxAimSpeed = transition.MaxAimSpeed;
                }
            }
            else if (transition.TransitionType == CameraControllerTransition.CameraTransitionType.CURVE)
            {
                if (transition.Duration <= 0f)
                {
                    maxAimSpeed = -1f;
                    bool snapAim3 = snapAim;
                    snapAim = true;
                }
                else
                {
                    aimBlendState.FirstFrameRot               = base.transform.rotation;
                    aimBlendState.SmoothedAim                 = base.transform.rotation;
                    aimBlendState.Curve                       = transition.Curve;
                    aimBlendState.Duration                    = transition.Duration;
                    aimBlendState.ElapsedTime                 = 0f;
                    aimBlendState.IsBlending                  = true;
                    aimBlendState.DampenMovingTarget          = transition.DampenMovingTarget;
                    aimBlendState.MaxSpeed                    = (aimBlendState.DampenMovingTarget ? transition.MaxAimSpeed : (-1f));
                    aimBlendState.DoubleDampenMovingTargetAim = transition.DoubleDampenMovingTargetAim;
                    maxAimSpeed = aimBlendState.MaxSpeed;
                }
            }
            result = true;
        }
        return(result);
    }