protected override IEnumerator ExecuteStep()
        {
            StepCompleted = false;
            LookMovement  = CreateLookMovement();
            LookMovement.OnMovementCompleted += HandleMovementCompleted;
            SplineCameraControlLord.EnqueueLookMovement(LookMovement);

            while (!StepCompleted)
            {
                yield return(null);
            }

            Router.FireEvent(EndEventName, DurationOverage);
        }
Ejemplo n.º 2
0
        protected override IEnumerator ExecuteStep()
        {
            var currentTime = Time.time;

            if (CameraSubSteps.Count == 0)
            {
                PopulateSubSteps();
            }

            foreach (var subStep in CameraSubSteps)
            {
                bool stepCompleted = false;
                bool lookCompleted = false;

                while (Time.time < currentTime + subStep.Delay)
                {
                    yield return(null);
                }

                currentTime += subStep.Delay;
                var stepMovement = subStep.GenerateTranslationMovement(currentTime);
                stepMovement.OnMovementCompleted += (f) => stepCompleted = true;

                var lookMovement = subStep.GenerateLookMovement(currentTime);
                lookMovement.OnMovementCompleted += (f) => lookCompleted = true;

                SplineCameraControlLord.EnqueueMovement(stepMovement);
                SplineCameraControlLord.EnqueueLookMovement(lookMovement);

                while (!stepCompleted || !lookCompleted)
                {
                    yield return(null);
                }

                currentTime += subStep.Duration;
            }

            Router.FireEvent(EndEventName);
        }
Ejemplo n.º 3
0
        protected override void ConductOtherFunctionality()
        {
            var lookModule = new SplineMovement();

            //lookModule.ComputeImaginaryFocus = SplineFocusTypes.GetFocusFunction(FocusType);
            lookModule.ComputeImaginaryFocus = SplineFocusTypes.GetFocusFunction(SplineComputeFocusFunctionTypes.Linear);
            lookModule.EvaluateSpline        = SplineTypes.GetEvaluationFunction(SplineType);

            FacingObject.transform.parent        = SplineCameraControlLord.CameraParent.transform;
            FacingObject.transform.localPosition = TargetFacing;
            lookModule.TargetTransform           = FacingObject.transform;

            var startTime = Time.time - DelayOverage;
            //var timeCurve = CurveFactory.GetCurve(TimeCurve);
            var timeCurve = CurveFactory.GetCurve("EaseBoth");

            lookModule.RealtimeToLocalTime = (realTime) => (realTime - startTime) / Duration;
            lookModule.ModulateLocalTime   = (timeProportion) => timeCurve.Evaluate(timeProportion);

            //moveModule.OnMovementCompleted += ()=>Object.Destroy( FacingObject );

            SplineCameraControlLord.EnqueueLookMovement(lookModule);
        }
Ejemplo n.º 4
0
 protected override void OnCancel()
 {
     SplineCameraControlLord.ClearCameraMovements();
 }