image.Set単色するための拡張スクリプトを作成しました。
拡張Script
関数(機能)一覧
関数 | 機能 | 戻り値 |
Image.SetRGBA(float r, float g, float b, float a) | RGBAを変更 | Image |
Image.SetRGB(float r, float g, float b) | アルファ値を保ったままRGBを変更 | Image |
Image.SetR(float r) | ImageのRのみを変更 | Image |
Image.SetG(float g) | ImageのGのみを変更 | Image |
Image.SetB(float b) | ImageのBのみを変更 | Image |
Image.SetA(float a) | ImageのAのみを変更 | Image |
拡張コード
適当なCSファイルに以下のコードを追加します。
using UnityEngine;
using UnityEngine.UI;
namespace BlueBreath.UI
{
public static class ImageExtension
{
public static Image SetRGBA(this Image image, float r, float g, float b, float a)
{
image.color = new Color(r, g, b, a);
return image;
}
public static Image SetRGB(this Image image, float r, float g, float b)
{
image.color = new Color(r, g, b, image.color.a);
return image;
}
public static Image SetR(this Image image, float r)
{
image.color = new Color(r, image.color.g, image.color.b, image.color.a);
return image;
}
public static Image SetG(this Image image, float g)
{
image.color = new Color(image.color.r, g, image.color.b, image.color.a);
return image;
}
public static Image SetB(this Image image, float b)
{
image.color = new Color(image.color.r, image.color.g, b, image.color.a);
return image;
}
public static Image SetA(this Image image, float a)
{
image.color = new Color(image.color.r, image.color.g, image.color.b, a);
return image;
}
}
}
デモ・使用方法
デモの使用手順
- 拡張Script「ImageExtension」を任意のファイルに導入します
- デモコンポーネントを取り付けます
- 色を変更するImageコンポーネントへの参照を付けます
using UnityEngine;
using UnityEngine.UI;
using BlueBreath.UI;
namespace BlueBreath.Practice
{
public class ImageExDemo : MonoBehaviour
{
[SerializeField]private Image image;
// Start is called before the first frame update
void Start()
{
image.SetB(210f/255f).SetG(210f/255f);
}
}
}
Tips:メソッドチェーン
返り値が変更したImageですので、続けて他の色を変更することが出来ます。
image.SetB(210f/255f).SetG(210f/255f);
(全色変更する場合は、纏めてしまった方が見やすいかと思います。)
関連・参考
関連
ImageのColor変更が反映されない場合
コメント