MRが楽しい

MRやVRについて学習したことを書き残す

UnityでInspectorのカラーピッカーでアルファ値を変更できないようにする

本日はUnityの小ネタ枠です。
UnityでInspectorのカラーピッカーでアルファ値を変更できないようにする方法です。

ColorUsageAttribute

Color型の値をカラーピッカーを使用して設定するための属性です。
Color,Color32型は本属性を指定しなくてもデフォルトでカラーピッカーのフィールドが表示されます。
docs.unity3d.com

本属性の引数でshowAlphaのTrue/Falseを設定可能です。
引数にFalseを渡すことでカラーピッカーでアルファ値を変更できなくなります。

[ColorUsageAttribute(false)]
public Color testColor;

サンプルスクリプト

アルファ値を設定可能なフィールドと設定不可能なフィールドを持つ以下のサンプルスクリプトを作成しました。
・ColorUsageAttributeTest.cs

using UnityEngine;

public class ColorUsageAttributeTest : MonoBehaviour
{
    [ColorUsage(true)]
    public Color colorWithAlpha = Color.red;
    
    [ColorUsage(false)]
    public Color32 colorWithoutAlpha = Color.red;
    
    void Start()
    {
    }
}

Inspectorのフィールドからカラーピッカーを開くと以下の通りfalseを設定した方はアルファ値の項目が表示されません。