public void SetSize(Vector2 size) { this.size = size; float xScale = size.x / HexMath.CalculateHexWidth(referenceHeight); float yScale = size.y / referenceHeight; float hexScale = Mathf.Min(xScale, yScale); transform.localScale = new Vector3(hexScale, hexScale, 1); }
/** * znamy ilość hexów i oczekiwany rozmiar hexów w unitach, obliczamy rozmiar planszy */ private BoardHex BuildCalcBoardSize() { // this.SetHexNumber (newColNumber, newRowNumber); // if (recommendHexHeight <= 0) { // Debug.LogError("hexHeight musi być większe od 0"); // } // recommendHexHeight = newHexHeight; hexWidth = HexMath.CalculateHexWidth(recommendHexHeight); return(this.BuildCalc()); }
/** * znamy ilość hexów i rozmiar planszy w unitach. Odpowiada to trybowi FIXED_BOARD_CAL_HEXSIZE */ private BoardHex BuildCalcHexSize() { // this.SetHexNumber (newColNumber, newRowNumber); // if (newRecommendWidth <= 0 || newRecommendHeight <= 0) { // Debug.LogError("boardUnitWidth i boardUnitHeight muszą być większe od 0"); // } // recommendSize.x = newRecommendWidth; // recommendSize.y = newRecommendHeight; float bestHexWidth = HexMath.CalculateHexWidthInRow(recommendSize.x, colNumber); float bestHexHeight = HexMath.CalculateHexHeightInColumn(recommendSize.y, rowNumber); hexWidth = HexMath.CalculateHexWidth(bestHexHeight); if (hexWidth > bestHexWidth) //szerokość obliczona z bestHexHeight jest za duża, przyjmujemy więc bestHexWidth jako referencję i obliczamy { hexWidth = bestHexWidth; recommendHexHeight = HexMath.CalculateHexHeight(hexWidth); } else //prawidłowo obliczona została szerokość { recommendHexHeight = bestHexHeight; } return(this.BuildCalc()); }