コード例 #1
0
        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);
                    }
                }
            }
        }