private void RemoveDeadTarget() { if (_currentTarget != null) { if (_currentTarget.target.isDead) { _currentTarget = null; } } }
private void SwitchTarget(RESULT r) { if (_unit.unitFire.isAttacking) { return; } if (_currentTarget == null) { _currentTarget = r; } else if (IsTargetInShootRange(r) && !IsTargetInShootRange(_currentTarget)) { _currentTarget = r; } else if (IsTargetInCloseRange(r)) { if (IsTargetInCloseRange(_currentTarget)) { float n = (r.target.transform.position - _unit.transform.position).magnitude; float o = (_currentTarget.target.transform.position - _unit.transform.position).magnitude; if (n < o) { _currentTarget = r; } } else { _currentTarget = r; } } else { /* * Vector3 v1 = _currentTarget.target.transform.position - _unit.transform.position; * Vector3 v2 = r.target.transform.position - _unit.transform.position; * if(v2.magnitude < v1.magnitude * 0.7f) * { * _currentTarget = r; * } */ } }
public void RefreshTarget(DataConfig.TARGET_SELECT forceSelectType = DataConfig.TARGET_SELECT.UNKNOWN) { if (_currentTarget == null) { _refreshTimestamp = 0; } long ct = TimeHelper.GetCurrentTimestampScaled(); long dt = ct - _refreshTimestamp; if (ct < REFRESH_INTERVAL * 1000) { return; } _refreshTimestamp = ct; UnitTargetSelect.RESULT r = Select(forceSelectType); if (r != null) { SwitchTarget(r); } }