TextSettingsは、禁則処理などの設定でフォントそのものは変えることができません。
〇やり方その1
基本機能のみで行うのであれば、メッセージウィンドウを切り替えるという方法があります。
UguiNovelTextの「font」の部分に、違うフォントを設定した複数のメッセージウィンドウを使って、メッセージウィンドウごと切り替える形になります。
〇やり方その2
上記の、メッセージウィンドウを切り替える方法と使わずにフォントのみを変えたいのであればプログラムを自作する形になります。
できてしまえば、楽なのですが、プログラムの知識が必要なので、なるべく「その1」のほうでやったほうが良いかと思います。
メッセージウィンドウを一つしか使っていないのであれば、サンプルは以下のようになります。(同一のファイルを添付しました)
using UnityEngine;
using Utage;
using System.Collections.Generic;
//
パラメーターの「font」に設定された名前のフォントを、自動的にメッセージウィンドウに設定するサンプル
public class SampleChangeFont : MonoBehaviour
{
public AdvEngine engine = null;
public string paramNameFont = "font";
public List<Font> fonts = new List<Font>();
public AdvUguiMessageWindow messageWindow = null;
string CurrentFontName { get; set; }
//指定の名前のフォントに変更
void ChangeFont( string fontName )
{
var font = fonts.Find(x =>
x.name == fontName);
if (font == null)
{
Debug.LogError($"{fontName} は設定されていないフォント名です");
return;
}
messageWindow.Text.font = font;
CurrentFontName = fontName;
}
void Update()
{
if (!engine.IsStarted) return;
if (!engine.Param.IsInit) return;
var fontName = engine.Param.GetParameterString(paramNameFont);
if (CurrentFontName != fontName)
{
ChangeFont(fontName);
}
}
}
これをAddComponentして、インスペクター上で「engine」や「messageWindow」を手動設定してください。
Fontsには使用するフォントのリストを設定します。
その後、Paramコマンドで、
パラメーターのfontを変える形で、フォントを切り替えます。
ただし、このサンプルは、複数のメッセージウィンドウを使っている場合は使えません。
「複数のメッセージウィンドウを使って、なおかつそれらのメッセージウィンドウのフォントを切り替えられるようにする」というケースの場合は、別のプログラムの書き方が必要になります。
また、セーブに対応するためにパラメーター機能を使っているので、逆にセーブをしない場合は正常に動作しない可能性があります。
2022年3月29日火曜日 13:08:34 UTC+9 優水: