【Unity】Image クラスの拡張メソッド

DEVELOP, Unity

Texture をセットするためだけに毎回 Sprite.Create を書きたくない。だらだらと似たコードが並ぶのもよろしくない。

Texture 2D tex2D;
image.sprite = Sprite.Create(tex2D, new Rect(0, 0, tex2D.width, tex2D.height), Vector2.zero);

そんなわけで、少し楽をするために Image の関数を拡張しました。

サンプルコード

using System;
using UnityEngine;
using UnityEngine.UI;
 
namespace mira
{
    /// <summary>
    /// uGUI Image拡張メソッド
    /// </summary>
    public static class ImageExtensions
    {
        /// <summary>
        /// Image コンポーネントのSpriteに、テクスチャを設定します。
        /// </summary>
        public static void SetTexture2D(this Image self, Texture2D tex2D)
        {
            if (tex2D != null)
            {
                self.sprite = Sprite.Create(tex2D, new Rect(0, 0, tex2D.width, tex2D.height), Vector2.zero);
            }
            else
            {
                nsDebug.LogWarning("テクスチャが割り当てられていません。spriteにnullを設定します。");
                self.sprite = null;
            }
        }
    }
}

使用例

Texture2D  tex2D;
image.SetTexture2D(tex2D);

スポンサーリンク

Posted by kazupon