-UnityでRPGを作りたい...!!
そんな管理人の備忘録
RPGには膨大な量のテキストが必要となります。"Start"や"GameOver"などの短いテキストだったらGUITextを利用することで実現できますが、"Start"のGUIText、"GameOver"のGUITextと複数のGUITextオブジェクトを必要とします。
そこで今回は、一つのGUIText内のGUIText.textを書き換えてみましょう。
前回の記事【ゲーム開発】タイトル画面からゲーム画面に遷移させてみる【unity】では、画像表示の一例にメッセージウィンドウを作成してみました。
前回表示したメッセージウィンドウ。
メッセージウィンドウを作成したら、そこにテキストを表示させたいですね。でも、GUITextに直接テキストを書くのではなく、外部の.txtを読み込んでGUITextのテキストに格納してみましょう!
とりあえず、こんな感じを目指す。
必要な処理は次の通り。
・外部テキスト(ここではtest.txt)の読み込み
・GUIText.textの書き換え
1.外部テキストの読み込み
Unityで外部テキストを読み込むには、Resources.Load()関数を使います。このResources.Loadはアセット内のResourcesフォルダーからテキストや画像を読み込むことができます。そのため、アセットにResourcesフォルダーを作成する必要があります。
アセット内にResourcesフォルダーを作成しよう!スペルミスするとResources.Loadが判定してくれないから注意しよう!
今回のスクリプト(抜粋)
void Start () {
TextAsset txt = Resources.Load("test") as TextAsset;
guiText.text = txt.text;
}
TextAsset txt = Resources.Load("test") as TextAsset;
TextAsset型のtxtにResourcesフォルダー下のtest.txtを格納しています。
2.GUIText.textの書き換え
guiText.text = txt.text;
guiTextのtextに先ほど読み込んだtxtのtextを格納しています。
意外と簡単にできました。Resources.Load()関数の説明は案外少ないので困りましたが、分かれば単純です。
大規模なゲームではテキストや画像をサーバーに格納して、アプリの起動時やシーン遷移の時にロードしています。私も指定したurlから外部テキストを読み込ませてみたいですね。
今回はここまで。
次はキャラクター表示したり会話させてRPGっぽくしたいですね。
------------------------------------------------------
個人ブログもよろしく!
動物園てくの
喫茶店てくの
漫画喫茶てくの