//テキストデータの再作成 bool TryUpdateTextData(string text) { if (CurrentChangeType != ChagneType.All && this.TextData != null && this.TextData.OriginalText == text) { return(false); } else { //TextData作成 this.textData = new TextData(text); if (isDebugLog) { Debug.Log(this.TextData.ParsedText.OriginalText); } //文字データを作成 this.characterDataList = CreateCharacterDataList(this.TextData); //拡張的な情報を作成 this.additional = new UguiNovelTextGeneratorAdditional(this.CharacterDataList, this); //フォントの文字画像を準備・設定 InitFontCharactes(NovelText.font, this.CharacterDataList); //拡張的な情報の初期化 Additional.InitAfterCharacterInfo(this); return(true); } }
//各文字の情報を作成 //フォントのテクスチャ情報から文字の大きさなどを取得し、各文字の基本情報を初期化する internal void BuildCharcteres() { //禁則処理等、すべての情報を再度作成 Profiler.BeginSample("BuildCharcteres"); //TextData作成 this.TextData = new TextData(NovelText.text); if (isDebugLog) { Debug.Log(this.TextData.ParsedText.OriginalText); } //文字データを作成 this.CharacterDataList = CreateCharacterDataList(this.TextData); //拡張的な情報を作成 this.Additional = new UguiNovelTextGeneratorAdditional(this.CharacterDataList, this.Generator); //フォントの文字画像を準備・設定 FontInfoBuilder.InitFontCharactes(NovelText.font, this.CharacterDataList, this.Additional); //拡張的な情報の初期化 Additional.InitAfterCharacterInfo(this.Generator); //描画範囲のサイズに合わせて自動改行 this.PreferredWidth = CalcPreferredWidth(this.CharacterDataList); ClearGraphicObjectList(); Profiler.EndSample(); }
//頂点情報を作成 void Refresh() { if (isRequestingCharactersInTexture) { if (isDebugLog) { Debug.LogError("RequestingCharactersInTexture on Refresh"); } return; } //TextData作成 textData = new TextData(NovelText.text); if (isDebugLog) { Debug.Log(textData.ParsedText.OriginalText); } //描画範囲のサイズを設定しておく Rect rect = CachedRectTransform.rect; maxWidth = Mathf.Abs(rect.width); maxHeight = Mathf.Abs(rect.height); //文字データを作成 List <UguiNovelTextCharacter> characterDataList = CreateCharacterDataList(); //拡張的な情報を作成 additional = new UguiNovelTextGeneratorAdditional(characterDataList, this); //フォントの文字画像を準備・設定 InitFontCharactes(NovelText.font, characterDataList); //拡張的な情報の初期化 Additional.InitAfterCharacterInfo(this); //独自の改行処理を入れる AutoLineBreak(characterDataList); //行ごとの文字データを作成 lineDataList = CreateLineList(characterDataList); //テキストのアンカーを適用する ApplyTextAnchor(lineDataList, NovelText.alignment); //Offsetを適用する ApplyOffset(lineDataList); //拡張的な情報の表示位置を初期化 Additional.InitPosition(this); //当たり判定の情報を作成 MakeHitGroups(characterDataList); isInitGraphicObjectList = false; IsRebuidFont = false; }