コード例 #1
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();
            }
        }