示例#1
0
 private void Update()
 {
     if (Input.GetMouseButtonDown(0))
     {
         var indicated = GetIndicated();
         if (indicated.IsPresent)
         {
             _clickedTile = indicated.Value;
         }
     }
     else if (Input.GetMouseButtonUp(0))
     {
         var indicated = GetIndicated();
         if (indicated.IsPresent)
         {
             if (!_clickedTile.Equals(indicated.Value) && gameInputActive.Value && piece.Selected.IsPresentAnd(x => new TilePoint(x).Equals(_clickedTile)))
             {
                 Message.Publish(new MoveToRequested(piece.Selected.Value, _clickedTile, GetReleasedTilePoint(indicated.Value)));
             }
         }
     }
 }
    private void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            var rawMousePos      = Input.mousePosition;
            var adjustedMousePos = rawMousePos + new Vector3(0, 0, -_mainCamera.transform.position.z);
            var mousePos         = _mainCamera.ScreenToWorldPoint(adjustedMousePos);
            _clickedTile = new TilePoint(mousePos);
        }
        else if (Input.GetMouseButtonUp(0))
        {
            var rawMousePos      = Input.mousePosition;
            var adjustedMousePos = rawMousePos + new Vector3(0, 0, -_mainCamera.transform.position.z);
            var mousePos         = _mainCamera.ScreenToWorldPoint(adjustedMousePos);
            var releasedTile     = new TilePoint(mousePos);

            if (!_clickedTile.Equals(releasedTile) && gameInputActive.Value && piece.Selected.IsPresentAnd(x => new TilePoint(x).Equals(_clickedTile)))
            {
                Message.Publish(new MoveToRequested(piece.Selected.Value, _clickedTile, GetReleasedTilePoint(releasedTile)));
            }
        }
    }