ひとりでのアプリ開発 - fineの備忘録 -

ひとりでアプリ開発をするなかで起こったことや学んだことを書き溜めていきます

Unity - HyphenationJpn_uGUI:Text に禁則処理を行う -

初めに

 日本語の文章を表示する際、禁則処理をしたい場合があります。本記事では uGUI の Text に禁則処理を実装するパッケージを紹介します。

禁則処理とは

 禁則処理とは、「句点・読点・閉じ括弧などを行頭に置いたり、開き括弧などを行末に置いたりしないように、入力したり、プログラムを組んだりすること」です。
dictionary.goo.ne.jp

 日本語で文章を書く上で読みやすくするために、禁則と呼ばれるルールがあります。その処理をすることが禁則処理です。

(身近な例)

  • 行が変わるタイミングに句読点が来たとき、行頭に句読点を置かず、文末に書く
  • 拗促音(ゃ、ゅ、ょ、っなど小さい文字)を行頭に置かず、文末に書く

ja.wikipedia.org

ダウンロード・インポート

github.com

 上記リンク先からダウンロード、インポートできます。

インポートの仕方
  1. Code→Download ZIP をクリックし、ZIPファイルをダウンロード
  2. ZIPファイルを展開
  3. フォルダを Unity プロジェクトの Assets 内に入れる

使い方

(使い方)

  • uGUI の Text にHyphenationJpn(スクリプト)をつける
  • HyphenationJpn の Text に表示したいテキストを入力する

Text コンポーネントのほうに直接入力すると、禁則処理されないため注意

スクリプトから文字列を取得

 HyphenationJpn を取得し、GetText 関数を使います。

using UnityEngine;

public class Example : MonoBehaviour
{
    public HyphenationJpn text;
    
    private void Start()
    {
        text.GetText( "ここに文字列を入力" );
    }
}

インポート後のエラーについて

 インポート後に Test スクリプトにエラーがでます。

if(GUILayout.Button("ChangeText"))
{
      string sampleText = "Unityマニュアルガイドは特定のプラットフォームにのみ適用されるセクションを含みます。\n自ら参照したいセクションを選択して下さい。プロットフォーム特有の情報は各ページの三角形の記号で示されるボタンにより展開して参照することが出来ます。";
      hypJpn.SetText(sampleText);  //ここがエラーの原因
}

 原因は "GetText" であるところを "SetText" としている部分です。Set を Get に修正すればよいでしょう。

最後に

 GetText 関数ではなく、uGUI の Text と同じように ".text" で文字列を代入できるようにする方法が下のリンク先で紹介されています。ぜひ、ご覧ください。
qiita.com