MessageBox 绘制标签,在所在属性位置绘制一个消息框,支持三种消息类型 Info/Warning/Error。

可以根据指定属性状态作为显示条件。

消息框内显示的内容为标签所在属性的 label

用法

MB(messageType):指定消息类型

MB(messageType,propertyName,compareFunc):指定消息类型,显隐条件的属性名称,比较方式。比较目标值可以配合 TT 标签设定

MB(messageType,propertyName,compareFunc,vectorElement):指定消息类型,显隐条件的属性名称,比较方式,需要比较的向量分量。比较目标值可以配合 TT 标签设

代码示例

Shader "BZGUITest/MessageBox"
{
    Properties
    {
        [MB(Info)]_m0("this will always display",float)=1
        _TargetValue("TargetValue",Range(-10,10))=0
        [MessageBox(Warning,_TargetValue,GE)][TT(1)]_m1("value greater than 1",float)=1
        [MB(Error,_TargetValue,LE)][TT(0)]_m2("value less than 0",float)=1
    }
        SubShader
    {
        Tags { "RenderType" = "Opaque" }
        LOD 100

        Pass
        {
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag
            // make fog work
            #include "UnityCG.cginc"

            struct appdata
            {
                float4 vertex : POSITION;
                float2 uv : TEXCOORD0;
            };

            struct v2f
            {
                float2 uv : TEXCOORD0;
                float4 vertex : SV_POSITION;
            };


            v2f vert(appdata v)
            {
                v2f o;
                o.vertex = UnityObjectToClipPos(v.vertex);
                UNITY_TRANSFER_FOG(o,o.vertex);
                return o;
            }

            fixed4 frag(v2f i) : SV_Target
            {

                    return half4(0.5,0.5,0.5,1);


            }
            ENDCG
        }
    }
     CustomEditor "BZTA.BZShaderGUI"
}