Пример #1
0
    private void ShowLightSourcesBlendedProperties()
    {
        using (new UITools.GUIDisable(IsShaderBaked(material))) {
            selectedLightSourcesBlend = (LightSourcesBlend)EditorGUILayout.Popup(Labels.LightSourceBlend, (int)selectedLightSourcesBlend, Labels.LightSourceBlendEnumLabels);
        }
        if (selectedLightSourcesBlend == LightSourcesBlend.Multiple)
        {
            material.EnableKeyword(Constants.Shader.BLEND_LIGHT_SOURCES_KEYWORD);
            materialEditor.ShaderProperty(blendedLightColor, Labels.BlendedLightColor);
            EditorGUILayout.LabelField(Labels.BlendedLightIntensities);
            int originalIndentLevel = EditorGUI.indentLevel;
            EditorGUI.indentLevel        += 1;
            blendedLightIntensitiesValues = blendedLightIntensities.vectorValue;
            EditorGUI.BeginChangeCheck();
            blendedLightIntensitiesValues.x = EditorGUILayout.Slider(Labels.BlendedLightIntensities0, blendedLightIntensitiesValues.x, -1.0f, 1.0f);
            blendedLightIntensitiesValues.y = EditorGUILayout.Slider(Labels.BlendedLightIntensities1, blendedLightIntensitiesValues.y, -1.0f, 1.0f);
            blendedLightIntensitiesValues.z = EditorGUILayout.Slider(Labels.BlendedLightIntensities2, blendedLightIntensitiesValues.z, -1.0f, 1.0f);
            if (EditorGUI.EndChangeCheck())
            {
                blendedLightIntensities.vectorValue = blendedLightIntensitiesValues;
            }
            EditorGUI.indentLevel = originalIndentLevel;


            materialEditor.ShaderProperty(blendedLightSmoothness, Labels.BlendedLightSmoothness);
        }
        else
        {
            material.DisableKeyword(Constants.Shader.BLEND_LIGHT_SOURCES_KEYWORD);
        }
    }
Пример #2
0
    protected void InitMaterial()
    {
        selectedAxisSpace         = isKeywordEnabled(Constants.Shader.AXIS_COLORS_LOCAL) ? Space.Local : Space.World;
        useThreeLightSystem       = isKeywordEnabled(Constants.Shader.SYMETRIC_COLORS_ON_KEYWORD);
        useGradientLightXColors   = isKeywordEnabled(Constants.Shader.AXIS_GRADIENT_ON_X_KEYWORD);
        useGradientLightYColors   = isKeywordEnabled(Constants.Shader.AXIS_GRADIENT_ON_Y_KEYWORD);
        useGradientLightZColors   = isKeywordEnabled(Constants.Shader.AXIS_GRADIENT_ON_Z_KEYWORD);
        useVertexColors           = isKeywordEnabled(Constants.Shader.VERTEX_COLOR_KEYWORD);
        useMainTexture            = isKeywordEnabled(Constants.Shader.USE_MAIN_TEXTURE_KEYWORD);
        useGPUInstancing          = material.enableInstancing;
        useAmbientLight           = isKeywordEnabled(Constants.Shader.AMBIENT_LIGHT_KEYWORD);
        useDirectLight            = isKeywordEnabled(Constants.Shader.DIRECT_LIGHT_KEYWORD);
        useSpotLight              = isKeywordEnabled(Constants.Shader.SPOT_LIGHT_KEYWORD);
        usePointLight             = isKeywordEnabled(Constants.Shader.POINT_LIGHT_KEYWORD);
        selectedLightSourcesBlend = isKeywordEnabled(Constants.Shader.BLEND_LIGHT_SOURCES_KEYWORD) ? LightSourcesBlend.Multiple : LightSourcesBlend.Individual;
        useGlobalGradient         = isKeywordEnabled(Constants.Shader.GRADIENT_LOCAL_KEYWORD) || isKeywordEnabled(Constants.Shader.GRADIENT_WORLD_KEYWORD);
        selectedGradientSpace     = isKeywordEnabled(Constants.Shader.GRADIENT_LOCAL_KEYWORD) ? Space.Local : Space.World;
        useCustomLightmapping     = isKeywordEnabled(Constants.Shader.CUSTOM_LIGHTMAPPING_KEYWORD);
        useUnityLightmapping      = isKeywordEnabled(Constants.Shader.UNITY_LIGHTMAPPING_KEYWORD);
        receiveCustomShadows      = isKeywordEnabled(Constants.Shader.RECEIVE_CUSTOM_SHADOW_KEYWORD);
        castCustomShadows         = isKeywordEnabled(Constants.Shader.CAST_CUSTOM_SHADOW_ON_KEYWORD);
        useFog = isKeywordEnabled(Constants.Shader.USE_FOG_KEYWORD);

        if (useCustomLightmapping || useUnityLightmapping)
        {
            selectedUVChannel = (int)lightmapUVChannel.floatValue;
        }
    }