private void Update()
        {
            UpdateTouchMode();

            switch (ControlMode)
            {
            case Mode.CameraMovement:
                CamCtrl.UpdateCamera();
                break;

            case Mode.Selecting:
                // 1) on hit => selecting mode
                // 2) else camera movement
                RaycastHit hit;
                Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition); //  | Input.GetTouch(0).position
                if (Physics.Raycast(ray, out hit))
                {
                    if (_currentSelected == null)
                    {
                        _currentSelected = hit.transform.gameObject;
                        SelCtrl.ToggleAddToList(_currentSelected);
                    }
                }
                else
                {
                    _currentSelected = null;

                    // move camera if nothing has been selected at first touch
                    if (SelCtrl.Selected.IsEmpty())
                    {
                        ControlMode = Mode.CameraMovement;
                        CamCtrl.UpdateCamera();
                    }
                }

                break;

            case Mode.Idle:
            default:
                if (_currentSelected != null)
                {
                    SelCtrl.FinalTarget(_currentSelected);
                    _currentSelected = null;
                }
                else
                {
                    SelCtrl.DeselectAll();
                }

                break;
            }
        }
コード例 #2
0
 //Update the right player
 public void Update()
 {
     if (players != null && players.Count > 0)
     {
         InputManager.InputPkg pkg = inputMan.GetInputs();
         players[playerTurn - 1].UpdatePlayer(pkg);
         UIManager.Instance.Update();
         moveCam.UpdateCamera(pkg);
     }
 }