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); }
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); } }