「Unity/UIText」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→部分的に色を変える) |
(→部分的に文字の太さを変える) |
||
(同じ利用者による、間の2版が非表示) | |||
行72: | 行72: | ||
Text name.text = "<b>hoge</b>hoge"; | Text name.text = "<b>hoge</b>hoge"; | ||
Text name.supportRichText = true; // defaultでonだから不要かもだけど | Text name.supportRichText = true; // defaultでonだから不要かもだけど | ||
+ | |||
+ | ==部分的に文字の大きさを変える== | ||
+ | Text name.text = "<size=200%>hoge</size>hoge"; | ||
+ | Text name.supportRichText = true; // defaultでonだから不要かもだけど | ||
+ | |||
+ | 公式:https://docs.unity3d.com/ja/2022.3/Manual/UIE-supported-tags.html | ||
==テキスト幅取得== | ==テキスト幅取得== | ||
行80: | 行86: | ||
参考:http://kan-kikuchi.hatenablog.com/entry/Text_Preferred | 参考:http://kan-kikuchi.hatenablog.com/entry/Text_Preferred | ||
+ | |||
+ | ==3Dで使うテキスト== | ||
+ | [[Unity/3d/3DText]] [ショートカット] | ||
+ | |||
+ | ==テキストをロードして表示== | ||
+ | Assets/Resources/TextData.txtファイルにテキストデータを記述 | ||
+ | <pre> | ||
+ | string text = (Resources.Load("TextData", typeof(TextAsset)) as TextAsset).text; | ||
+ | GameObject.Find("Text").GetComponent<Text>().text = text; | ||
+ | </pre> | ||
+ | |||
+ | 参考:http://studio-jpn.com/unity-textasset/ |
2024年6月11日 (火) 23:31時点における最新版
目次
Text配置
- メインメニュー/GameObject/UI/Textを選択すると"New Text"がCanvas上に設置される
- そのまま再生
- Project Saveだと消えるかも。File/Sence Saveしておかないと。
UITextを制御する方法は2つ
- Textオブジェクトに直接Scirptを入れこむ方法
- Textオブジェクトを外部のCanvasScriptから制御する方法
1つ目:Textに直接Scriptを入れ込み制御
- UITextを配置
- UITextを選択してinspectorを開く
- AddComponentからTextScript.csを作成する
- そのscriptのStartメソッド内に以下を記述
this.GetComponentInChildren<Text>().text = "hoge";
- 再生すると配置したUITextのNewTextがhogeになる
2つ目:Textを外部のCanvasScriptから制御
- UITextを配置
- Canvasを選択してinspectorを開く
- AddComponentからCanvasScript.csを作成する
- Canvas側のscriptに記述
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class CanvasScript : MonoBehaviour { public Text myText; void Start () { myText.text = "hoge"; } void Update () { } }
- Canvasのinspectorを開きCanvas下のTextを"CanvasのinspectorのmyText"へドラッグ
- 再生すると配置したUITextのNewTextがhogeになる
参考:http://hiyotama.hatenablog.com/entry/2015/04/27/060000
カスタムTextのScript制御
- UITextを配置
- UITextを選択してinspectorを開く
- 一番上のTextというところをMessageTextなどと変えてエンターキーを押す(エンターを押さないと変更できない)
- AddComponentでNewScriptを選択して"MessageText"と入れてMessageText.csファイルを作る
- AddComponentにMessageTextが登録されていることを確認(登録されていなければ、MessageText.csを追加する
- MessageText.csに以下の通りに
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class MessageText : MonoBehaviour { public string text = ""; // Use this for initialization void Start () { } // Update is called once per frame void Update () { this.GetComponent<Text>().text = text; } }
- Canvas側のscriptに記述
public MessageText messageText; myMessageText.text = "hoge";
or
messageText.GetComponent<MessageText>().text = "Click!";
部分的に色を変える
Text name.text = "<color=#ff0000>hoge</color>hoge"; Text name.supportRichText = true; // defaultでonだから不要かもだけど
部分的に文字の太さを変える
Text name.text = "hogehoge"; Text name.supportRichText = true; // defaultでonだから不要かもだけど
部分的に文字の大きさを変える
Text name.text = "<size=200%>hoge</size>hoge"; Text name.supportRichText = true; // defaultでonだから不要かもだけど
公式:https://docs.unity3d.com/ja/2022.3/Manual/UIE-supported-tags.html
テキスト幅取得
Text text1 = GetComponent<Text>(); text.rectTransform.sizeDelta = new Vector2(text.preferredWidth, text.preferredHeight); text.rectTransform.sizeDelta = new Vector2(text.preferredWidth, text.preferredHeight); Debug.Log(text1.preferredWidth);
参考:http://kan-kikuchi.hatenablog.com/entry/Text_Preferred
3Dで使うテキスト
Unity/3d/3DText [ショートカット]
テキストをロードして表示
Assets/Resources/TextData.txtファイルにテキストデータを記述
string text = (Resources.Load("TextData", typeof(TextAsset)) as TextAsset).text; GameObject.Find("Text").GetComponent<Text>().text = text;