【Unity】Image クラスの拡張メソッド
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);