本日はUnity枠です。
Unityでは[uGUI]もしくは[TextMeshPro]を使用して文字を表示します。
筆者の好きなアニメガンダムシリーズの次のようなシーンの演出をxRに応用できないかと取り組んでいます。
ちなみに上記埋め込み動画はガンダムの公式チャンネルの公開している動画になります。
OSが立ち上がる表現で小文字の文字列から一文字一文字流れるように大文字に変換されています。
昨日はString.ToUpper()を使用してアルファベットの文字列を大文字に変換しました。
本日は一文字一文字流れるように変換するにあたり文字列の中から一部を抽出しているためこの部分に取り組みます。
〇String.Substring()
[String.Substring()]メソッドはString型の文字列から部分的に抽出します。
今回は次のコードで試しました。
using System.Collections; using System.Collections.Generic; using UnityEngine; using TMPro; public class TextChanger : MonoBehaviour { [SerializeField] TextMeshPro OriginalText; [SerializeField] TextMeshPro ChangedText; // Start is called before the first frame update void Start() { string st = OriginalText.text.ToString(); ChangedText.text = st.Substring(0,1); } }
昨日と同様に次の文字列で試します。
General Unilateral Neuro - Link Dispersive Autonomic Maneuver
コード実行後は次のようになります。
G
[Substring()]メソッドの引数は抽出の開始場所を指定します。第二引数を指定した場合は抽出の終了場所を指定します。
上記コードの場合0,1のため、最初から1文字目までを抽出し返します。
次のようにコードを直します。
ChangedText.text = st.Substring(5,10);
コードを実行すると次のようになります。
al Unilate
(Gener)alUnilate(ral)で5~10番目の文字が抽出されていることがわかります。
Substring()の第二引数を指定しない場合はその文字列の最後までが抽出されます。
ChangedText.text = st.Substring(15);
ral Neuro - Link Dispersive Autonomic Maneuver
上記のように結果が返されます。