コガネブログ

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

【Unity】uGUI のテキスト表示で文字列中に画像(アニメーション可)を表示できる「TextInlineSprite」紹介

はじめに

「TextInlineSprite」を Untiy プロジェクトに導入することで
uGUI のテキスト表示で文字列中に画像
(アニメーション可)を表示できるようになります

この記事では「TextInlineSprite」の使用方法を
途中まで調査した結果を書き残しています

使用例

f:id:baba_s:20171222200416g:plain

使い方

ソースコードの修正

「TextInlineSprite」を新規で使い始める場合は
ソースコードを少し修正する必要があります

・SpriteAsset.cs 1行目辺り

using UnityEngine;
using System.Collections;
using System.Collections.Generic;

[CreateAssetMenu( menuName = "InlineText" )] // ★追加
public class SpriteAsset : ScriptableObject
{
    /// <summary>
    /// 图集ID
    /// </summary>
    public int ID;
    /// <summary>
    /// 静态表情
    /// </summary>
    public bool _IsStatic;
    /// <summary>
    /// 图片资源
    /// </summary>
    public Texture texSource;
    /// <summary>
    /// 所有sprite信息 SpriteAssetInfor类为具体的信息类
    /// </summary>
    public List<SpriteInforGroup> listSpriteGroup = new List<SpriteInforGroup>(); // ★修正
}

画像の準備

f:id:baba_s:20171222200549p:plain

表示したい画像を Unity プロジェクトに追加して
「Texture Type」を「Sprite (2D and UI)」に変更します

画像データを管理する ScriptableObject の準備

f:id:baba_s:20171222201754p:plain

Project ビューの「Create>InlineText」を選択します

f:id:baba_s:20171222202645p:plain

作成したアセットで文字列中に表示したい画像のデータを設定します

シーンのオブジェクトの準備

f:id:baba_s:20171222202814p:plain

文字列中に画像を表示するオブジェクトの親オブジェクトに
「InlineManager」をアタッチします

f:id:baba_s:20171222203037p:plain

文字列中に画像を表示したいオブジェクトに「InlineText」をアタッチします

f:id:baba_s:20171222203138p:plain

文字列中の画像を表示するオブジェクトに「SpriteGraphic」をアタッチします
「Sprite Asset」に、画像データを管理する ScriptableObject を設定します

これで、ゲームを再生すると、文字列中に画像を表示することができます

参考サイト様

http://blog.csdn.net/column/details/13021.html

関連記事