Beispiel #1
0
 public void RemoveMarker(HUDMarker marker)
 {
     if (_lockedOnHudMarker == marker)
     {
         LockedOnHUDMarker = null;
     }
 }
Beispiel #2
0
    public void AddCustomHUDMarker(HUDMarker marker)
    {
        var newMarker = Instantiate <CustomCompassMarker>(customMarkerPrefab, parent: this.transform);

        newMarker.Setup(marker);
        _customMarkers.Add(newMarker);
    }
Beispiel #3
0
    private void UpdateLineOfSight(bool hasLOS, HUDMarker marker)
    {
        var isEnemy = hasLOS && marker != null && marker.IsEnemy;

        OnTargetInSightChanged(new LineOfSightInfo
        {
            isEnemyInSight = isEnemy,
            isLockedOn     = IsLockedOn
        });
    }
Beispiel #4
0
    public void UpdateLockStatus(HUDMarker marker, bool isTargetInLockedArea, float distanceToCentreSquared, bool hasLineOfSight)
    {
        if (distanceToCentreSquared < _shortestDistanceToScreenCentreSquared)
        {
            if (_markerClosestToScreenCentre != null)
            {
                _inactiveMarkers.Add(_markerClosestToScreenCentre);
            }

            _markerClosestToScreenCentre           = marker;
            _shortestDistanceToScreenCentreSquared = distanceToCentreSquared;
            _isTargetInLockArea = isTargetInLockedArea;
            _hasLineOfSight     = hasLineOfSight;
        }
        else
        {
            _inactiveMarkers.Add(marker);
        }
    }
Beispiel #5
0
    private void LateUpdate()
    {
        UpdateLineOfSight(_hasLineOfSight, _markerClosestToScreenCentre);

        if (!IsLockedOn || _dropLockOn)
        {
            foreach (var marker in _inactiveMarkers)
            {
                if (marker != null)
                {
                    marker.DisengageLockOn();
                }
            }

            if (_markerClosestToScreenCentre != null)
            {
                if (_dropLockOn)
                {
                    _markerClosestToScreenCentre.DisengageLockOn();
                    LockedOnHUDMarker = null;
                }
                else
                {
                    if (_markerClosestToScreenCentre.EngageLockOnAndCheckIfLockedOn(_isTargetInLockArea))
                    {
                        LockedOnHUDMarker = _markerClosestToScreenCentre;
                    }
                }
            }
        }

        _markerClosestToScreenCentre = null;
        _inactiveMarkers.Clear();
        _shortestDistanceToScreenCentreSquared = 10f;
        _dropLockOn = false;

        _hasLineOfSight = false;
    }
Beispiel #6
0
 public void Setup(HUDMarker hudMarker)
 {
     HUDMarker    = hudMarker;
     widget.color = hudMarker.Color;
 }
Beispiel #7
0
 public void RemoveMarker(HUDMarker marker)
 {
     Destroy(marker.gameObject);
 }