async void Poll() { while (true) { if (state == WeaponHitMarkerState.None) { await Task.Delay(1); continue; } switch (state) { case WeaponHitMarkerState.Action: Send(false, 20, 10, 20); break; case WeaponHitMarkerState.Hit: Send(true, 80, 20, 80); break; } var delay = Mathf.RoundToInt(interval * 1000); if (delay == 0) { delay = 1; } await Task.Delay(delay); state = WeaponHitMarkerState.None; } }
void ActionCallback() { if (state == WeaponHitMarkerState.None) { state = WeaponHitMarkerState.Action; } }
void HitCallback(WeaponHit.Data data) { if (data.Entity == null) { return; } state = WeaponHitMarkerState.Hit; }