Example #1
0
        public static CoverSettings Default()
        {
            var settings = new CoverSettings();

            settings.CanUseCorners            = true;
            settings.LowCapsuleHeight         = 0.75f;
            settings.LowAimCapsuleHeight      = 1.25f;
            settings.RotationSpeed            = 20.0f;
            settings.EnterDistance            = 0.15f;
            settings.LeaveDistance            = 0.25f;
            settings.PivotSideMargin          = 0.5f;
            settings.CornerAimTriggerDistance = 0.6f;
            settings.TallSideEnterRadius      = 0.15f;
            settings.TallSideLeaveRadius      = 0.05f;
            settings.TallCornerOffset         = 0.25f;
            settings.LowSideEnterRadius       = 0.3f;
            settings.LowSideLeaveRadius       = 0.2f;
            settings.LowCornerOffset          = 0.4f;
            settings.DirectionChangeDelay     = 0.25f;
            settings.BackDelay    = 0.5f;
            settings.CornerOffset = new Vector3(0.8f, 0, 0);
            settings.Update       = CoverUpdateSettings.Default();
            settings.Angles       = CoverAngleSettings.Default();

            return(settings);
        }
Example #2
0
        public void Update(CoverState current, Vector3 position, Vector3 head, float searchRadius, float capsuleRadius, CoverSettings settings)
        {
            _current       = current;
            _colliderCount = Physics.OverlapSphereNonAlloc(position, searchRadius, _colliders);
            _position      = position;
            _head          = head;
            _radius        = capsuleRadius;
            _settings      = settings;

            for (int i = 0; i < _colliderCount; i++)
            {
                _covers[i] = GetCover(_colliders[i].gameObject);
            }
        }