Example #1
0
        public new void LoadBook()
        {
            GameObject      gameObj = new GameObject("dummy_page");
            TextMeshProUGUI tmp     = gameObj.AddComponent <TextMeshProUGUI>();

            tmp.text = " ";
            tmp.ForceMeshUpdate();

            if (bookMetrics.Pages[0].LineMetrices[0].ToString().Length > 0)
            {
                DetermineScaledDims(tmp, bookMetrics.Pages[0].LineMetrices[0]);
                GameObject.Destroy(gameObj);
            }

            tmp.fontSize = SPACING_PRECISION;

            float spaceWidth  = tmp.GetPreferredValues(" a").x - tmp.GetPreferredValues("a").x;
            float spaceHeight = tmp.GetPreferredValues("\n").y;

            StringBuilder sb = new StringBuilder();

            foreach (PageMetrics page in bookMetrics.Pages)
            {
                foreach (LineMetrics line in page.LineMetrices)
                {
                    tmp.fontSize = line.ChunkMetrices[0].GetFontSize();
                    tmp.ForceMeshUpdate();

                    var v = tmp.GetPreferredValues(line.ToString());

                    Styler.SetScaler(scaleFactorH);
                    Styler.StyleLine(line);
                    sb.Append(line.PaddedLine(bookMetrics.PageMaxWidth, spaceHeight, spaceWidth, SPACING_PRECISION));
                }

                gameObj = new GameObject("page" + page.PageNumber);
                tmp     = gameObj.AddComponent <TextMeshProUGUI>();
                AddPage(ConstructPage(tmp, "page" + page.PageNumber, page.PageNumber, sb.ToString()));
                sb = new StringBuilder();
            }
        }