スクリプトを使用してTEXDrawのテキストを変更する方法の紹介。

始めまして。卒業研究の一環でUnityを使った数学のゲームを作っています。けけと申します。第1回は、TEXDrawのテキストをスクリプトで変更する方法を紹介します。

TEXDrawというのはUnity のアセットで、LaTeX 形式の数式やテキストを Unity 内で描画するためのツールです。(以下のサイトで購入することが出来ます。)

1 スクリプトの作成

スクリプトの作成を行います。今回は、Tex_text.csというスクリプト名にしました。作成方法は、Assets→作成→C#scriptの順番で作成することが出来ます。

作成したスクリプト

次に作成したスクリプトに以下のように記述します。

using UnityEngine;
using TexDrawLib;  //TEXDrawを用いるのに必要。

public class Tex_text : MonoBehaviour
{
    public TEXDraw a;
    // Start is called before the first frame update
    void Start()
    {
        a.text = "$\\sin\\frac{\\pi}{2}"; //ダブルクォーテーション内は自分が表示させたい数式に変更してください
    }
}

2 TEXDrawオブジェクトの作成

ヒエラルキー→UI→TEXDrawの順番でオブジェクトの作成を行います。

TEXDrawを用いる手順

作成後のヒエラルキーは以下の画像のようになると思われます。

作成後のヒエラルキー画面

このままでは正しく画面内に文字を表示できません。なので以下の手順で細かい設定を行います。

2.1 Canvasの設定を変更

canvasを選択後、インスペクター側のレンダーモードをスクリーンスペース-カメラ-に変更。後に、レンダーカメラが追加されるのでヒエラルキーにあるMain Cameraをドラッグ&ドロップを行う。以下の画像の様になれば成功。

変更後のCanvas画面

こうすることでCanvasがカメラに依存した表示方法になり、正しく画面内に文字を表示できるようになりました。

2.2 TEXDrawの設定を変更

次に、テキストを鮮明に表示させるために作成したTEXDrawオブジェクトの設定を変更します。初期設定のままだと、表示させるテキスト長くなるとテキストを全部表示することが出来ません。なので、TEXDraw UIの下にあるMore Propertiesを押してOverflowをvisibleに変えましょう。

TEXDrawオブジェクトの変更後の画面

こうすることでテキストが長くても全て表示することができます。

TEXDrawの設定変更前
TEXDrawの設定変更後

ちょっとした小技

また、このままでは文字の画質が荒いと思われます。裏ワザとしてテキストサイズを300(最大サイズ)にした後、文字スケールを小さくすることで高画質になります。※体感、画質良くなった気がしませんか?

サイズ、スケール変更後

3 TEXDrawオブジェクトに作成したスクリプトを付与

次に、TEXDrawオブジェクトに1で作成したスクリプトを付与しましょう。スクリプトをTEXDrawにドラッグ&ドロップすることでスクリプトを追加できます。

スクリプト付与後のTEXDrawのインスペクター画面

画面を見るとAというところが「なし」となっています。この場所にTEXDrawをドラッグ&ドロップします。

変更後の画面

これで一通り完成しました。実際にゲームを実行するとスクリプトで描いたLATEXの表記が反映されます。

ゲーム実行後の画面

以上が、スクリプトを使用してTEXDrawのテキストを変更する方法です。何か質問等ありましたらご連絡ください。ご覧いただきありがとうございました。

いいなと思ったら応援しよう!