Example #1
0
        IEnumerator ApplyInfluenceRoutine()
        {
            var initialExclusiveFocusPointH = Vector3H(_targetExclusiveFocusPoint.HasValue ? _targetExclusiveFocusPoint.Value : ProCamera2D.CameraPosition);
            var initialExclusiveFocusPointV = Vector3V(_targetExclusiveFocusPoint.HasValue ? _targetExclusiveFocusPoint.Value : ProCamera2D.CameraPosition);

            // Save the current boundaries so we can enable then later again
            if (IgnoreBoundaries && ProCamera2D.UseNumericBoundaries)
            {
                ProCamera2D.UseNumericBoundaries = false;

                _boundsAnimator = new BoundariesAnimator(ProCamera2D);
                _boundsAnimator.UseTopBoundary    = ProCamera2D.UseTopBoundary;
                _boundsAnimator.TopBoundary       = ProCamera2D.TopBoundary;
                _boundsAnimator.UseBottomBoundary = ProCamera2D.UseBottomBoundary;
                _boundsAnimator.BottomBoundary    = ProCamera2D.BottomBoundary;
                _boundsAnimator.UseLeftBoundary   = ProCamera2D.UseLeftBoundary;
                _boundsAnimator.LeftBoundary      = ProCamera2D.LeftBoundary;
                _boundsAnimator.UseRightBoundary  = ProCamera2D.UseRightBoundary;
                _boundsAnimator.RightBoundary     = ProCamera2D.RightBoundary;

                ProCamera2D.MoveCameraInstantlyToPosition(VectorHV(initialExclusiveFocusPointH, initialExclusiveFocusPointV));
            }
            else if (IgnoreBoundaries && ProCamera2D.UseGeometryBoundaries)
            {
                ProCamera2D.UseGeometryBoundaries = false;
                _reenableGeometryBoundaries       = true;

                ProCamera2D.MoveCameraInstantlyToPosition(VectorHV(initialExclusiveFocusPointH, initialExclusiveFocusPointV));
            }

            // Ease in
            var waitForFixedUpdate = new WaitForFixedUpdate();
            var t = 0f;

            while (t <= 1.0f)
            {
                t += (ProCamera2D.UpdateType == UpdateType.LateUpdate ? Time.deltaTime : Time.fixedDeltaTime) / EaseInDuration;

                var targetExclusiveFocusPointH = Utils.EaseFromTo(initialExclusiveFocusPointH, Vector3H(_transform.position), t, TransitionEaseType);
                var targetExclusiveFocusPointV = Utils.EaseFromTo(initialExclusiveFocusPointV, Vector3V(_transform.position), t, TransitionEaseType);

                _targetExclusiveFocusPoint = VectorHV(targetExclusiveFocusPointH, targetExclusiveFocusPointV);

                ProCamera2D.ExclusiveTargetPosition = _targetExclusiveFocusPoint;

                yield return((ProCamera2D.UpdateType == UpdateType.FixedUpdate) ? waitForFixedUpdate : null);
            }

            // Follow this
            while (true)
            {
                ProCamera2D.ExclusiveTargetPosition = VectorHV(Vector3H(_transform.position), Vector3V(_transform.position));

                _targetExclusiveFocusPoint = ProCamera2D.ExclusiveTargetPosition.Value;

                yield return((ProCamera2D.UpdateType == UpdateType.FixedUpdate) ? waitForFixedUpdate : null);
            }
        }
        protected override void Start()
        {
            base.Start();

            if (ProCamera2D == null)
                return;

            _boundsAnim = new BoundariesAnimator(ProCamera2D, NumericBoundaries);
            _boundsAnim.OnTransitionStarted += () =>
            {
                if (ProCamera2D.OnBoundariesTransitionStarted != null)
                    ProCamera2D.OnBoundariesTransitionStarted();
            };

            _boundsAnim.OnTransitionFinished += () =>
            {
                if (ProCamera2D.OnBoundariesTransitionFinished != null)
                    ProCamera2D.OnBoundariesTransitionFinished();
            };

            GetTargetBoundaries();

            if (SetAsStartingBoundaries)
            {
                NumericBoundaries.CurrentBoundariesTriggerID = _instanceID;

                NumericBoundaries.UseLeftBoundary = UseLeftBoundary;
                if (UseLeftBoundary)
                    NumericBoundaries.LeftBoundary = NumericBoundaries.TargetLeftBoundary = _targetLeftBoundary;

                NumericBoundaries.UseRightBoundary = UseRightBoundary;
                if (UseRightBoundary)
                    NumericBoundaries.RightBoundary = NumericBoundaries.TargetRightBoundary = _targetRightBoundary;

                NumericBoundaries.UseTopBoundary = UseTopBoundary;
                if (UseTopBoundary)
                    NumericBoundaries.TopBoundary = NumericBoundaries.TargetTopBoundary = _targetTopBoundary;

                NumericBoundaries.UseBottomBoundary = UseBottomBoundary;
                if (UseBottomBoundary)
                    NumericBoundaries.BottomBoundary = NumericBoundaries.TargetBottomBoundary = _targetBottomBoundary;

                if (!UseTopBoundary && !UseBottomBoundary && !UseLeftBoundary && !UseRightBoundary)
                    NumericBoundaries.UseNumericBoundaries = false;
                else
                    NumericBoundaries.UseNumericBoundaries = true;
            }

            _initialCamSize = ProCamera2D.GameCameraSize;
        }
Example #3
0
        IEnumerator DisableInfluenceRoutine()
        {
            var initialExclusiveFocusPointH = Vector3H(_targetExclusiveFocusPoint.Value);
            var initialExclusiveFocusPointV = Vector3V(_targetExclusiveFocusPoint.Value);

            // Ease out
            var waitForFixedUpdate = new WaitForFixedUpdate();
            var t = 0f;

            while (t <= 1.0f)
            {
                t += (ProCamera2D.UpdateType == UpdateType.LateUpdate ? Time.deltaTime : Time.fixedDeltaTime) / EaseOutDuration;

                var targetExclusiveFocusPointH = Utils.EaseFromTo(initialExclusiveFocusPointH, Vector3H(ProCamera2D.CameraTargetPositionDuringExclusive), t, TransitionEaseType);
                var targetExclusiveFocusPointV = Utils.EaseFromTo(initialExclusiveFocusPointV, Vector3V(ProCamera2D.CameraTargetPositionDuringExclusive), t, TransitionEaseType);

                _targetExclusiveFocusPoint = VectorHV(targetExclusiveFocusPointH, targetExclusiveFocusPointV);

                ProCamera2D.ExclusiveTargetPosition = _targetExclusiveFocusPoint;

                yield return((ProCamera2D.UpdateType == UpdateType.FixedUpdate) ? waitForFixedUpdate : null);
            }

            _targetExclusiveFocusPoint = null;

            // Restore boundaries if existed
            if (_boundsAnimator != null)
            {
                _boundsAnimator.Transition();
            }

            _boundsAnimator = null;

            if (_reenableGeometryBoundaries)
            {
                ProCamera2D.UseGeometryBoundaries = true;
                _reenableGeometryBoundaries       = false;
            }

            if (ProCamera2D.OnExclusiveFocusFinished != null)
            {
                ProCamera2D.OnExclusiveFocusFinished();
            }
        }
        void Start()
        {
            if (ProCamera2D == null)
            {
                return;
            }

            if (NumericBoundaries == null)
            {
                var numericBoundaries = FindObjectOfType <ProCamera2DNumericBoundaries>();
                NumericBoundaries = numericBoundaries == null?ProCamera2D.gameObject.AddComponent <ProCamera2DNumericBoundaries>() : numericBoundaries;
            }

            _boundsAnim = new BoundariesAnimator(ProCamera2D, NumericBoundaries);
            _boundsAnim.OnTransitionStarted += () =>
            {
                if (NumericBoundaries.OnBoundariesTransitionStarted != null)
                {
                    NumericBoundaries.OnBoundariesTransitionStarted();
                }
            };

            _boundsAnim.OnTransitionFinished += () =>
            {
                if (NumericBoundaries.OnBoundariesTransitionFinished != null)
                {
                    NumericBoundaries.OnBoundariesTransitionFinished();
                }
            };

            if (IsSpawnEnemies)
            {
                ResetCustomBoundaries();
            }

            GetTargetBoundaries();

            if (SetAsStartingBoundaries)
            {
                SetBoundaries();
            }

            _initialCamSize = ProCamera2D.ScreenSizeInWorldCoordinates.y * .5f;
        }
        void Start()
        {
            if (ProCamera2D == null)
                return;

            if (PositionAndSizeOverrider == null)
            {
                var positionAndSizeOverrider = ProCamera2D.GetComponent<ProCamera2DPositionAndSizeOverrider>();
                PositionAndSizeOverrider = positionAndSizeOverrider == null ? ProCamera2D.gameObject.AddComponent<ProCamera2DPositionAndSizeOverrider>() : positionAndSizeOverrider;
                PositionAndSizeOverrider.hideFlags = HideFlags.HideInInspector;
            }

            if (NumericBoundaries == null)
            {
                var numericBoundaries = FindObjectOfType<ProCamera2DNumericBoundaries>();
                NumericBoundaries = numericBoundaries == null ? ProCamera2D.gameObject.AddComponent<ProCamera2DNumericBoundaries>() : numericBoundaries;
            }

            _boundsAnim = new BoundariesAnimator(ProCamera2D, NumericBoundaries);
            _boundsAnim.OnTransitionStarted += () =>
            {
                if (ProCamera2D.OnBoundariesTransitionStarted != null)
                    ProCamera2D.OnBoundariesTransitionStarted();
            };

            _boundsAnim.OnTransitionFinished += () =>
            {
                if (ProCamera2D.OnBoundariesTransitionFinished != null)
                    ProCamera2D.OnBoundariesTransitionFinished();
            };

            GetTargetBoundaries();

            if (SetAsStartingBoundaries)
                SetBoundaries();

            _initialCamSize = ProCamera2D.GameCameraSize;
        }
Example #6
0
        protected override void Start()
        {
            base.Start();

            if (ProCamera2D == null)
            {
                return;
            }

            if (PositionAndSizeOverrider == null)
            {
                var positionAndSizeOverrider = ProCamera2D.GetComponent <ProCamera2DPositionAndSizeOverrider>();
                PositionAndSizeOverrider = positionAndSizeOverrider == null?ProCamera2D.gameObject.AddComponent <ProCamera2DPositionAndSizeOverrider>() : positionAndSizeOverrider;

                PositionAndSizeOverrider.hideFlags = HideFlags.HideInInspector;
            }

            if (NumericBoundaries == null)
            {
                var numericBoundaries = FindObjectOfType <ProCamera2DNumericBoundaries>();
                NumericBoundaries = numericBoundaries == null?ProCamera2D.gameObject.AddComponent <ProCamera2DNumericBoundaries>() : numericBoundaries;
            }

            _boundsAnim = new BoundariesAnimator(ProCamera2D, NumericBoundaries);
            _boundsAnim.OnTransitionStarted += () =>
            {
                if (ProCamera2D.OnBoundariesTransitionStarted != null)
                {
                    ProCamera2D.OnBoundariesTransitionStarted();
                }
            };

            _boundsAnim.OnTransitionFinished += () =>
            {
                if (ProCamera2D.OnBoundariesTransitionFinished != null)
                {
                    ProCamera2D.OnBoundariesTransitionFinished();
                }
            };

            GetTargetBoundaries();

            if (SetAsStartingBoundaries)
            {
                NumericBoundaries.CurrentBoundariesTriggerID = _instanceID;

                NumericBoundaries.UseLeftBoundary = UseLeftBoundary;
                if (UseLeftBoundary)
                {
                    NumericBoundaries.LeftBoundary = NumericBoundaries.TargetLeftBoundary = _targetLeftBoundary;
                }

                NumericBoundaries.UseRightBoundary = UseRightBoundary;
                if (UseRightBoundary)
                {
                    NumericBoundaries.RightBoundary = NumericBoundaries.TargetRightBoundary = _targetRightBoundary;
                }

                NumericBoundaries.UseTopBoundary = UseTopBoundary;
                if (UseTopBoundary)
                {
                    NumericBoundaries.TopBoundary = NumericBoundaries.TargetTopBoundary = _targetTopBoundary;
                }

                NumericBoundaries.UseBottomBoundary = UseBottomBoundary;
                if (UseBottomBoundary)
                {
                    NumericBoundaries.BottomBoundary = NumericBoundaries.TargetBottomBoundary = _targetBottomBoundary;
                }

                if (!UseTopBoundary && !UseBottomBoundary && !UseLeftBoundary && !UseRightBoundary)
                {
                    NumericBoundaries.UseNumericBoundaries = false;
                }
                else
                {
                    NumericBoundaries.UseNumericBoundaries = true;
                }
            }

            _initialCamSize = ProCamera2D.GameCameraSize;
        }
        protected override void Start()
        {
            base.Start();

            if (ProCamera2D == null)
                return;

            if (PositionAndSizeOverrider == null)
            {
                var positionAndSizeOverrider = ProCamera2D.gameObject.GetComponent<ProCamera2DPositionAndSizeOverrider>();
                PositionAndSizeOverrider = positionAndSizeOverrider == null ? ProCamera2D.gameObject.AddComponent<ProCamera2DPositionAndSizeOverrider>() : positionAndSizeOverrider;
                PositionAndSizeOverrider.hideFlags = HideFlags.HideInInspector;
                PositionAndSizeOverrider.enabled = false;
            }
            PositionAndSizeOverrider.enabled = false;

            if (NumericBoundaries == null)
            {
                var numericBoundaries = ProCamera2D.gameObject.GetComponent<ProCamera2DNumericBoundaries>();
                NumericBoundaries = numericBoundaries == null ? ProCamera2D.gameObject.AddComponent<ProCamera2DNumericBoundaries>() : numericBoundaries;
            }

            _boundsAnim = new BoundariesAnimator(ProCamera2D, NumericBoundaries);
            _boundsAnim.OnTransitionStarted += () =>
            {
                if (ProCamera2D.OnBoundariesTransitionStarted != null)
                    ProCamera2D.OnBoundariesTransitionStarted();
            };

            _boundsAnim.OnTransitionFinished += () =>
            {
                if (ProCamera2D.OnBoundariesTransitionFinished != null)
                    ProCamera2D.OnBoundariesTransitionFinished();
            };

            GetTargetBoundaries();

            if (SetAsStartingBoundaries)
            {
                NumericBoundaries.CurrentBoundariesTriggerID = _instanceID;

                NumericBoundaries.UseLeftBoundary = UseLeftBoundary;
                if (UseLeftBoundary)
                    NumericBoundaries.LeftBoundary = NumericBoundaries.TargetLeftBoundary = _targetLeftBoundary;

                NumericBoundaries.UseRightBoundary = UseRightBoundary;
                if (UseRightBoundary)
                    NumericBoundaries.RightBoundary = NumericBoundaries.TargetRightBoundary = _targetRightBoundary;

                NumericBoundaries.UseTopBoundary = UseTopBoundary;
                if (UseTopBoundary)
                    NumericBoundaries.TopBoundary = NumericBoundaries.TargetTopBoundary = _targetTopBoundary;

                NumericBoundaries.UseBottomBoundary = UseBottomBoundary;
                if (UseBottomBoundary)
                    NumericBoundaries.BottomBoundary = NumericBoundaries.TargetBottomBoundary = _targetBottomBoundary;

                if (!UseTopBoundary && !UseBottomBoundary && !UseLeftBoundary && !UseRightBoundary)
                    NumericBoundaries.UseNumericBoundaries = false;
                else
                    NumericBoundaries.UseNumericBoundaries = true;
            }

            _initialCamSize = ProCamera2D.GameCameraSize;
        }
        void Start()
        {
            if (ProCamera2D == null)
                return;
            
            if (NumericBoundaries == null)
            {
                var numericBoundaries = FindObjectOfType<ProCamera2DNumericBoundaries>();
                NumericBoundaries = numericBoundaries == null ? ProCamera2D.gameObject.AddComponent<ProCamera2DNumericBoundaries>() : numericBoundaries;
            }

            _boundsAnim = new BoundariesAnimator(ProCamera2D, NumericBoundaries);
            _boundsAnim.OnTransitionStarted += () =>
            {
                if (NumericBoundaries.OnBoundariesTransitionStarted != null)
                    NumericBoundaries.OnBoundariesTransitionStarted();
            };

            _boundsAnim.OnTransitionFinished += () =>
            {
                if (NumericBoundaries.OnBoundariesTransitionFinished != null)
                    NumericBoundaries.OnBoundariesTransitionFinished();
            };

            GetTargetBoundaries();

            if (SetAsStartingBoundaries)
                SetBoundaries();

            _initialCamSize = ProCamera2D.ScreenSizeInWorldCoordinates.y * .5f;
        }
Example #9
0
        protected override void Start()
        {
            base.Start();

            if (ProCamera2D == null)
            {
                return;
            }

            _boundsAnim = new BoundariesAnimator(ProCamera2D);
            _boundsAnim.OnTransitionStarted += () =>
            {
                if (ProCamera2D.OnBoundariesTransitionStarted != null)
                {
                    ProCamera2D.OnBoundariesTransitionStarted();
                }
            };

            _boundsAnim.OnTransitionFinished += () =>
            {
                if (ProCamera2D.OnBoundariesTransitionFinished != null)
                {
                    ProCamera2D.OnBoundariesTransitionFinished();
                }
            };

            GetTargetBoundaries();

            if (SetAsStartingBoundaries)
            {
                ProCamera2D.CurrentBoundariesTriggerID = _instanceID;

                ProCamera2D.UseLeftBoundary = UseLeftBoundary;
                if (UseLeftBoundary)
                {
                    ProCamera2D.LeftBoundary = ProCamera2D.TargetLeftBoundary = _targetLeftBoundary;
                }

                ProCamera2D.UseRightBoundary = UseRightBoundary;
                if (UseRightBoundary)
                {
                    ProCamera2D.RightBoundary = ProCamera2D.TargetRightBoundary = _targetRightBoundary;
                }

                ProCamera2D.UseTopBoundary = UseTopBoundary;
                if (UseTopBoundary)
                {
                    ProCamera2D.TopBoundary = ProCamera2D.TargetTopBoundary = _targetTopBoundary;
                }

                ProCamera2D.UseBottomBoundary = UseBottomBoundary;
                if (UseBottomBoundary)
                {
                    ProCamera2D.BottomBoundary = ProCamera2D.TargetBottomBoundary = _targetBottomBoundary;
                }

                if (!UseTopBoundary && !UseBottomBoundary && !UseLeftBoundary && !UseRightBoundary)
                {
                    ProCamera2D.UseNumericBoundaries = false;
                }
                else
                {
                    ProCamera2D.UseNumericBoundaries = true;
                }
            }
        }