コード例 #1
0
    private void SetNextSlotPosition(TileUnitElement element)
    {
        float x;
        float y;

        if (element.TileUnits > rowCapacity)
        {
            //PointToNextRow();
            switch (startingAxis)
            {
            case Axis.Horizontal:
                currentSlotPosition = new Vector2(signMultiplier.x * startPadding.x,
                                                  currentSlotPosition.y + signMultiplier.y * (unitMagnitude + spacing));
                break;

            case Axis.Vertical:
                currentSlotPosition =
                    new Vector2(currentSlotPosition.x + signMultiplier.x * (unitMagnitude + spacing),
                                signMultiplier.y * startPadding.y);
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
            rowCapacity = unitCount;
        }
        var unitEquipped = unitCount - rowCapacity;
        var offset       = unitEquipped * (unitMagnitude + spacing);

        switch (startingAxis)
        {
        case Axis.Horizontal:
            x = signMultiplier.x * (startPadding.x + offset);
            y = currentSlotPosition.y;
            break;

        case Axis.Vertical:
            x = currentSlotPosition.x;
            y = signMultiplier.y * (startPadding.y + offset);
            break;

        default:
            throw new ArgumentOutOfRangeException();
        }
        currentSlotPosition = new Vector2(x, y);
        rowCapacity        -= element.TileUnits;
    }
コード例 #2
0
 internal void SetTile(TileModel tile, int height)
 {
     if (Element == null)
     {
         Element = new TileUnitElement
         {
             Tile   = tile.Id,
             Height = height
         }
     }
     ;
     else
     {
         Element.Tile   = tile.Id;
         Element.Height = height;
     }
     Updated?.Invoke();
 }
コード例 #3
0
    private void SetElementSize(TileUnitElement element)
    {
        var extendedSize = element.TileUnits * unitMagnitude + (element.TileUnits - 1) * spacing; var elementRect = element.Rect.rect;

        switch (startingAxis)
        {
        case Axis.Horizontal:
            element.Rect.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, unitMagnitude);
            element.Rect.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, extendedSize);
            break;

        case Axis.Vertical:
            element.Rect.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, extendedSize);
            element.Rect.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, unitMagnitude);
            break;

        default:
            throw new ArgumentOutOfRangeException();
        }
    }