示例#1
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;
        }
示例#2
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;
                }
            }
        }