private void DrawCountLabel(Vector3 labelOffset) { var knownEntities = _sensorDataComponent.GetInRange(_type); Handles.Label( transform.position + labelOffset, $"{_type}: {knownEntities.Count} | AVTR: {_sensorDataComponent.IsAvatarInRange(_type)}", EditorStyles.boldLabel); }
private bool HasTouchedValidActor() { if (_sensorDataComponent.IsAvatarInRange(SensorType.Touch)) { return(true); } if (_sensorDataComponent .GetInRange(SensorType.Touch) .Any(IsFriend)) { return(true); } return(false); }
public override BehaviourTreeStatus Tick(TimeData time) { // Prefer damaging Avatar if (_sensorDataComponent.IsAvatarInRange(SensorType.Touch)) { StoreDamageReceiver(_sensorDataComponent.Avatar); return(BehaviourTreeStatus.Success); } // Then try to damage friend var friendActor = _sensorDataComponent .GetInRange(SensorType.Touch) .FirstOrDefault(IsFriend); if (friendActor != null) { StoreDamageReceiver(friendActor); return(BehaviourTreeStatus.Success); } return(BehaviourTreeStatus.Failure); }