実現したいこと
UnityにてTextMeshProを利用したテキストの表示をしようとしています。
発生している問題・分からないこと
String型の文字列をsetText()によってTMP_textに与えることで内容を変化させていますが、'\n'を与えてもそのまま出力されてしまいます。
TextMeshProの設定でParse Escape Charactersにチェックを入れているので、Inspecter上でTextInputに直接入力すると'\n'がちゃんと改行として反映されます。
また、setText()でtextを設定した実行中にInspecterからTextMeshProの設定Parse Escape Charactersのチェックを一度外してもう一度入れなおしたり、TextInputから直接書き加えたり1文字消去したりすることでも改行が反映されます。
Unityの設定の問題でしょうか?あるいはsetText()で文字列を与えた後に何かしらの更新を行う必要があったりするのでしょうか?
有識者の方、ご教授お願い致します。
該当のソースコード
C#
1using System.Collections;2using System.Collections.Generic;3using UnityEngine;4using TMPro;5using System.Linq;6using Unity.VisualScripting;7using System.Text.RegularExpressions;8 9public class Sample1 : MonoBehaviour 10{11 [SerializeField] private TMP_Text text; //対象のテキスト(Inspecterから指定)12 13 [SerializeField] private string s; //反映したい文字列(Inspecterから指定)14 15 public void Start()16 {17 text.SetText(s);18 }19}20 21//Inspecterから与えている文字列s = "This is line 1.\nThis is line 2."
試したこと・調べたこと
上記の詳細・結果
Regex.Unescape()を利用してみましたが、うまく動作しませんでした。
補足
特になし
0 コメント