protected override void OnUpdate(float deltaTime) { base.OnUpdate(deltaTime); if (!Player.ExistsIn(World)) { return; } // case when server is also a client if (Player.Target != null && !Player.HasClientVisiblityOf(Player.Target)) { input.SelectTarget(null); } if (Input.GetMouseButtonDown(0) && !Input.GetMouseButton(1) && !InterfaceUtils.IsPointerOverUI) { Ray ray = cameraReference.WarcraftCamera.Camera.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out var hit, float.MaxValue, PhysicsReference.Mask.Interactable | PhysicsReference.Mask.Ground)) { if (rendering.TryFindRenderer(hit.collider, out UnitRenderer unitRenderer) && Player.HasClientVisiblityOf(unitRenderer.Unit)) { input.SelectTarget(unitRenderer.Unit); } } } }