コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】正規表現を使わずに TextMesh Pro のタグを除外した文字列を取得する例

ソースコード using TMPro; using UnityEngine; namespace Kogane { public static class TextMeshProTagRemover { public static string Remove( string text ) { var gameObject = new GameObject(); var textMeshPro = gameObject.AddComponent<TextMeshPro>(); textMe</textmeshpro>…

【Unity】TextMesh Pro でルビを振る時に表示位置がズレる場合の対処方法

はじめに <nobr>ピカチュウ<space=-3.75em><voffset=1em><size=50%>ぴかちゅう</size></voffset><space=1.25em> 上記のようなタグを使用して TextMesh Pro でルビを振る時に Alignment が左揃えならキレイに表示されるが 中央揃えや 右揃えだと表示位置が右にズレる現象に遭遇した (一行目がルビ無しの場合の正しい位置) ルビを振るテキ</space=1.25em>…

【Unity】TextMesh Pro でルビを振る時に文字間隔を変更していると表示位置がズレる

概要 <nobr>ピカチュウ<space=-3.75em><voffset=1em><size=50%>ぴかちゅう</size></voffset><space=1.25em> 上記のようなタグを使用して TextMesh Pro でルビを振る場合、 文字間隔(Spacing Options (em) の Character)が 0 だと正しい位置で表示されるが たとえば文字間隔を -8 にしているとこのようにルビの表示位置がズレてしまう <nobr>ピ</nobr></space=1.25em>…

【Unity】TextMesh Pro の FontAsset でデフォルトの文字間隔を設定する方法

概要 TextMesh Pro の FontAsset の Inspector の「Spacing Offset」で デフォルトの文字間隔を設定できる

【Unity】3D 空間に配置した TextMesh Pro に SpriteMask を適用する方法

概要 TextMesh Pro のマテリアルを選択して Stencil ID を 1、Stencil Comp を 3 にすることで ワールド空間に配置した TextMesh Pro に SpriteMask を適用できます Stencil ID を 0 にすると逆マスクになります 参考サイト様 You can use SpriteMask with T…

【Unity】3D Object の TextMesh Pro の色が正しく反映されない場合の対処方法

はじめに Vertex Color に設定した色より薄く表示される 3D Object の TextMesh Pro は Vertex Color に設定した色が 正しく反映されないことがあるのでその対処方法 目次 はじめに 目次 検証環境 対処方法1:TextMesh Pro を 3.2.0-pre.3 にアップデートす…

【Unity】TextMesh Pro のダイナミックフォントをリセットする方法

概要 TextMesh Pro の Font Asset の Inspector で右クリックして 「Reset」を押すとダイナミックフォントをリセットできます using TMPro; using UnityEditor; public static class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { var…

【Unity】TextMesh Pro 3.2.0-pre.3 以降でダイナミックフォントをリセットする方法

概要 TextMesh Pro 3.2.0-pre.3 以降で Font Asset の Inspector で右クリックして 「Clear Dynamic Data」を押すと ダイナミックフォントをリセットできます using System.Reflection; using TMPro; using UnityEditor; public static class Example { [Men…

【Unity】TextMesh Pro 3.2.0-pre.3 をインストールする方法

概要 Package Manager の「+ > Add package by name...」を選択して com.unity.textmeshpro と 3.2.0-pre.3 と入力して「Add」を押します

【Unity】TextMesh Pro でアウトラインが重なったところを良い感じにくっつけて描画する方法

概要 デフォルトだと上のような表示になりますが TextMesh Pro 3.2.0-pre.3 以降であれば下のような表示にできます マテリアルの Shader を「TextMeshPro/Mobile/Distance Field - 2 Pass」にすることで アウトラインが重なったところを良い感じにくっつけて…

【Unity】TextMeshPro の FontAsset をスクリプトから更新するエディタ拡張「Kogane TMP_FontAsset Updater」を GitHub に公開しました

リポジトリ 開発環境 Windows 10 Unity 2021.2.7f1 TextMeshPro 3.0.6 基本的な使い方 using Kogane.TMP_FontAssetUpdater; using TMPro; using UnityEditor; using UnityEngine; using UnityEngine.TextCore.LowLevel; public static class Example { [Menu…

【Unity】TextMesh Pro の Font Asset Creator の Packing Method が Fast と Optimize でどのくらい時間に差が出るか

はじめに TextMesh Pro の Font Asset Creator の Packing Method を Fast にした場合と Optimize にした場合でどのくらい時間に差が出るか検証 Font Asset 生成時の各種設定は上記の通り 検証に使用されていただいたフォントは上記サイト様で紹介されている…

【Unity】TextMesh Pro の Font Asset Creator で Auto Sizing ではなく Custom Size を使うと Generate が速くなる

検証内容 「ラノベPOPフォント」で日本語を含む TextMesh Pro のフォントを作成する場合、 Sampling Point Size を「Auto Sizing」にした場合と「Custom Size」にした場合で Font の Generate が完了するまでにどのくらい時間の差が出るか検証 検証環境 Wind…

【Unity】The character used for Underline is not available in font asset [XXXX].

概要 The character used for Underline is not available in font asset [XXXX]. TextMesh Pro のフォントに必要な文字をすべて登録しているはずなのに TextMesh Pro を表示する時に上記の警告が出る場合は ()_ 上記の文字をフォントに登録すると警告が消え…

【Unity】Unable to add the requested character to font asset [XXXX]'s atlas texture. Please make the texture [XXXX] readable.

概要 Unable to add the requested character to font asset [XXXX]'s atlas texture. Please make the texture [XXXX] readable. TextMesh Pro でダイナミックフォントを使用している時に上記の警告が出る場合は Project ウィンドウでダイナミックフォント…

【Unity】TextMesh Pro で表示するテキスト全体にスタイルを適用する方法

概要 以前は TextMesh Pro で表示するテキスト全体にスタイルを適用したい場合は 上記のようにテキストの最初と最後を style タグで囲む必要がありましたが 今の TextMesh Pro であれば「Text Style」からテキスト全体にスタイルを適用できます 参考サイト様…

【Unity】TextMesh Pro のダイナミックフォントでメインアトラスがいっぱいになったら追加のアトラステクスチャを自動で生成する方法

概要 例えば Font Atlas の設定をダイナミックフォントにしており、 アトラステクスチャのサイズが 256x256 の場合に 大量の文字を描画しようとすると 256x256 のアトラステクスチャに収まりきらなかった文字は描画されないですが Multi Atlas Textures をオ…

【Unity】TextMesh Pro でダイナミックフォントを使用する方法

概要 作成した Font Asset を選択して Inspector の 「Atlas Population Mode」を「Dynamic」に変更することで その Font Asset をダイナミックフォントとして扱えるようになります 例えば TextMesh Pro の Font Asset Creator で Custom Character List に…

【Unity】TextMesh Pro でルビ(ふりがな)を振ることができる「Ruby(Furigana) Text Mesh Pro」紹介

はじめに 「Ruby(Furigana) Text Mesh Pro」を Unity プロジェクトに導入することで TextMesh Pro でルビ(ふりがな)を振ることができるようになります 使用例 使い方 TextMesh Pro のコンポーネントの代わりに「Ruby Text Mesh Pro」または 「Ruby Text Me…

【Unity】TextMesh Pro でルビ(ふりがな)を振ることができる「TextMeshProRuby」紹介

はじめに 「TextMeshProRuby」を Unity プロジェクトに導入することで TextMesh Pro でルビ(ふりがな)を振ることができるようになります 使用例 使い方 TextMesh Pro のゲームオブジェクトに「Text Mesh Pro Ruby」をアタッチして 「Text」の欄で <r=【ルビ】>【ルビを</r=【ルビ】>…

【Unity】TextMesh Pro の SetText 関数で文字列を設定する場合、文字列が変化しない場合でも UI のリビルドが走る

検証環境 Unity 2019.3.10f1 TextMesh Pro 2.0.1 概要 TMP_Text.cs を見てみると public string text { get { return m_text; } set { if (m_text == value) return; m_text = old_text = value; m_inputSource = TextInputSources.String; m_haveProperties…

【Unity】string.Format や StringBuilder、TextMesh Pro の割り当てを削減できる「ZString」紹介

はじめに 「ZString」を Uniy プロジェクトに導入することで string.Format や StringBuilder、TextMesh Pro の割り当てを削減できるようになります string.Format 通常 using UnityEngine; public class Example : MonoBehaviour { private void Update() {…

【Unity】TextMesh Pro でハイパーリンクが正常に動作しない場合

概要 Canvas の Render Mode が Screen Space - Overlay の場合は var index = TMP_TextUtilities.FindIntersectingLink( text, position, null ); TMP_TextUtilities.FindIntersectingLink の第3引数に null を設定します Canvas の Render Mode が Screen …

【Unity】The character used for Ellipsis is not available in font asset [XXXX].

はじめに The character used for Ellipsis is not available in font asset [XXXX]. TextMesh Pro を使用していたら上記の警告が出力される現象に遭遇した 解決方法 TextMesh Pro に含まれている LineBreaking Following Characters.txt LineBreaking Leadi…

【Unity】TextMesh Pro の警告の出力を無効化する方法

概要 TMP Settings を選択して 「Disable warnings」をオンにすると、TextMesh Pro の警告の出力を無効化できます

【Unity】TextMesh Pro のオブジェクト作成時に Raycast Target をデフォルトでオフにする方法

概要 TMP Settings を選択して 「Enable Raycast Target」をオフにすると、 TextMesh Pro のオブジェクト作成時に Raycast Target がオフになります

【Unity】TextMesh Pro でハイパーリンクを実装する方法

概要 上記のスクリプトを Unity プロジェクトに追加して TextMesh Pro のオブジェクトにアタッチします そして、TextMesh Pro のテキストに <link="https://www.google.co.jp/">Google</link> 上記のような link タグを使用した文字列を設定します

【Unity】TextMesh Pro の Font Asset の更新を自動化できる「Unity TextMeshPro Font Customized Creater」紹介

はじめに Text Mesh Pro では Font Asset に含めたい文字が増えて更新したい場合、 毎回 Font Asset Creator ウィンドウを開いて作成し直す必要がありますが、 「Unity TextMeshPro Font Customized Creater」を Unity プロジェクトに導入することで TextMes…

【Unity】Unity 2018 以降の TextMesh Pro の FontAtlas は Inspector から更新できる

概要 Unity 2018 以降の TextMesh Pro の FontAtlas は Inspector で「Update Atlas Texture」ボタンを押すことで 前回生成した時の設定が反映された状態の Font Creator ウィンドウが表示されて FontAtlas を更新することができます

【Unity】TextMesh Pro UGUI で Raycast Target をオフにする方法

概要 Unity 2018 であれば Inspector から普通に変更できる Unity 2017 であれば Inspector を Debug モードにしてから 変更できる