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(); } }