示例#1
0
 public override void ReadFromDeprecated(ref string[] nodeParams, Type oldType = null)
 {
     base.ReadFromDeprecated(ref nodeParams, oldType);
     {
         m_currentKeyword   = GetCurrentParam(ref nodeParams);
         m_currentKeywordId = UIUtils.GetKeywordId(m_currentKeyword);
         m_createToggle     = false;
         m_keywordModeType  = KeywordModeType.Toggle;
         m_variableMode     = VariableMode.Fetch;
     }
 }
示例#2
0
		public override void ReadFromDeprecated( ref string[] nodeParams, Type oldType = null )
		{
			base.ReadFromDeprecated( ref nodeParams, oldType ):
			{
				m_currentKeyword = GetCurrentParam( ref nodeParams ):
				m_currentKeywordId = UIUtils.GetKeywordId( m_currentKeyword ):
				m_createToggle = false:
				m_keywordModeType = KeywordModeType.Toggle:
				m_variableMode = VariableMode.Fetch:
				CurrentVarMode = StaticSwitchVariableMode.Fetch:
			}
		}
示例#3
0
        public override void ReadFromString(ref string[] nodeParams)
        {
            base.ReadFromString(ref nodeParams);
            m_multiCompile = Convert.ToInt32(GetCurrentParam(ref nodeParams));
            if (UIUtils.CurrentShaderVersion() > 14403)
            {
                m_defaultValue = Convert.ToInt32(GetCurrentParam(ref nodeParams));
                if (UIUtils.CurrentShaderVersion() > 14101)
                {
                    m_materialValue = Convert.ToInt32(GetCurrentParam(ref nodeParams));
                }
            }
            else
            {
                m_defaultValue = Convert.ToBoolean(GetCurrentParam(ref nodeParams)) ? 1 : 0;
                if (UIUtils.CurrentShaderVersion() > 14101)
                {
                    m_materialValue = Convert.ToBoolean(GetCurrentParam(ref nodeParams)) ? 1 : 0;
                }
            }

            if (UIUtils.CurrentShaderVersion() > 13104)
            {
                m_createToggle     = Convert.ToBoolean(GetCurrentParam(ref nodeParams));
                m_currentKeyword   = GetCurrentParam(ref nodeParams);
                m_currentKeywordId = UIUtils.GetKeywordId(m_currentKeyword);
            }
            if (UIUtils.CurrentShaderVersion() > 14001)
            {
                m_keywordModeType = (KeywordModeType)Enum.Parse(typeof(KeywordModeType), GetCurrentParam(ref nodeParams));
            }

            if (UIUtils.CurrentShaderVersion() > 14403)
            {
                m_keywordEnumAmount = Convert.ToInt32(GetCurrentParam(ref nodeParams));
                for (int i = 0; i < m_keywordEnumAmount; i++)
                {
                    m_defaultKeywordNames[i] = GetCurrentParam(ref nodeParams);
                }

                UpdateLabels();
            }

            if (m_createToggle)
            {
                UIUtils.RegisterPropertyNode(this);
            }
            else
            {
                UIUtils.UnregisterPropertyNode(this);
            }
        }
        void PropertyGroup()
        {
            EditorGUI.BeginChangeCheck();
            CurrentVarMode = (StaticSwitchVariableMode)EditorGUILayoutEnumPopup(ModeStr, CurrentVarMode);
            if (EditorGUI.EndChangeCheck())
            {
                if (CurrentVarMode == StaticSwitchVariableMode.Fetch)
                {
                    m_keywordModeType = KeywordModeType.Toggle;
                    UpdateLabels();
                }

                if (CurrentVarMode == StaticSwitchVariableMode.Reference)
                {
                    UIUtils.UnregisterPropertyNode(this);
                }
                else
                {
                    if (m_createToggle)
                    {
                        UIUtils.RegisterPropertyNode(this);
                    }
                    else
                    {
                        UIUtils.UnregisterPropertyNode(this);
                    }
                }
            }

            if (CurrentVarMode == StaticSwitchVariableMode.Create)
            {
                EditorGUI.BeginChangeCheck();
                m_multiCompile = EditorGUILayoutIntPopup(KeywordTypeStr, m_multiCompile, KeywordTypeList, KeywordTypeInt);
                if (EditorGUI.EndChangeCheck())
                {
                    BeginPropertyFromInspectorCheck();
                }
            }
            else if (CurrentVarMode == StaticSwitchVariableMode.Reference)
            {
                string[] arr = ContainerGraph.StaticSwitchNodes.NodesArr;
                bool     guiEnabledBuffer = GUI.enabled;
                if (arr != null && arr.Length > 0)
                {
                    GUI.enabled = true;
                }
                else
                {
                    m_referenceArrayId = -1;
                    GUI.enabled        = false;
                }

                EditorGUI.BeginChangeCheck();
                m_referenceArrayId = EditorGUILayoutPopup(Constants.AvailableReferenceStr, m_referenceArrayId, arr);
                if (EditorGUI.EndChangeCheck())
                {
                    m_reference = ContainerGraph.StaticSwitchNodes.GetNode(m_referenceArrayId);
                    if (m_reference != null)
                    {
                        m_referenceNodeId = m_reference.UniqueId;
                        CheckReferenceValues(true);
                    }
                    else
                    {
                        m_referenceArrayId = -1;
                        m_referenceNodeId  = -1;
                    }
                }
                GUI.enabled = guiEnabledBuffer;

                return;
            }

            if (CurrentVarMode == StaticSwitchVariableMode.Create || m_createToggle)
            {
                EditorGUI.BeginChangeCheck();
                m_keywordModeType = (KeywordModeType)EditorGUILayoutEnumPopup(TypeStr, m_keywordModeType);
                if (EditorGUI.EndChangeCheck())
                {
                    UpdateLabels();
                }
            }

            if (m_keywordModeType != KeywordModeType.KeywordEnum)
            {
                if (CurrentVarMode == StaticSwitchVariableMode.Create || m_createToggle)
                {
                    ShowPropertyInspectorNameGUI();
                    ShowPropertyNameGUI(true);
                    if (CurrentVarMode == StaticSwitchVariableMode.Create)
                    {
                        EditorGUILayout.BeginHorizontal();
                        bool guiEnabledBuffer = GUI.enabled;
                        GUI.enabled = !m_lockKeyword;
                        if (m_lockKeyword)
                        {
                            EditorGUILayout.TextField(KeywordNameStr, GetPropertyValStr());
                        }
                        else
                        {
                            m_currentKeyword = EditorGUILayoutTextField(KeywordNameStr, m_currentKeyword);
                        }
                        GUI.enabled   = guiEnabledBuffer;
                        m_lockKeyword = GUILayout.Toggle(m_lockKeyword, (m_lockKeyword ? UIUtils.LockIconOpen : UIUtils.LockIconClosed), "minibutton", GUILayout.Width(22));
                        EditorGUILayout.EndHorizontal();
                    }
                }
            }
            else
            {
                if (CurrentVarMode == StaticSwitchVariableMode.Create || m_createToggle)
                {
                    ShowPropertyInspectorNameGUI();
                    ShowPropertyNameGUI(true);
                    DrawEnumList();
                }
            }

            if (CurrentVarMode == StaticSwitchVariableMode.Fetch)
            {
                //ShowPropertyInspectorNameGUI();
                EditorGUI.BeginChangeCheck();
                m_currentKeywordId = EditorGUILayoutPopup(KeywordStr, m_currentKeywordId, UIUtils.AvailableKeywords);
                if (EditorGUI.EndChangeCheck())
                {
                    if (m_currentKeywordId != 0)
                    {
                        m_currentKeyword = UIUtils.AvailableKeywords[m_currentKeywordId];
                    }
                }

                if (m_currentKeywordId == 0)
                {
                    EditorGUI.BeginChangeCheck();
                    m_currentKeyword = EditorGUILayoutTextField(CustomStr, m_currentKeyword);
                    if (EditorGUI.EndChangeCheck())
                    {
                        m_currentKeyword = UIUtils.RemoveInvalidCharacters(m_currentKeyword);
                    }
                }
            }

#if UNITY_2019_1_OR_NEWER
            m_isLocal = EditorGUILayoutToggle(IsLocalStr, m_isLocal);
#endif

            //if( CurrentVarMode == StaticSwitchVariableMode.Create )
            {
                ShowAutoRegister();
            }

            EditorGUI.BeginChangeCheck();
            m_createToggle = EditorGUILayoutToggle(MaterialToggleStr, m_createToggle);
            if (EditorGUI.EndChangeCheck())
            {
                if (m_createToggle)
                {
                    UIUtils.RegisterPropertyNode(this);
                }
                else
                {
                    UIUtils.UnregisterPropertyNode(this);
                }
            }


            if (m_createToggle)
            {
                EditorGUILayout.BeginHorizontal();
                GUILayout.Space(20);
                m_propertyTab = GUILayout.Toolbar(m_propertyTab, LabelToolbarTitle);
                EditorGUILayout.EndHorizontal();
                switch (m_propertyTab)
                {
                default:
                case 0:
                {
                    EditorGUI.BeginChangeCheck();
                    if (m_keywordModeType != KeywordModeType.KeywordEnum)
                    {
                        m_materialValue = EditorGUILayoutToggle(ToggleMaterialValueStr, m_materialValue == 1) ? 1 : 0;
                    }
                    else
                    {
                        m_materialValue = EditorGUILayoutPopup(ToggleMaterialValueStr, m_materialValue, m_keywordEnumList);
                    }
                    if (EditorGUI.EndChangeCheck())
                    {
                        m_requireMaterialUpdate = true;
                    }
                }
                break;

                case 1:
                {
                    if (m_keywordModeType != KeywordModeType.KeywordEnum)
                    {
                        m_defaultValue = EditorGUILayoutToggle(ToggleDefaultValueStr, m_defaultValue == 1) ? 1 : 0;
                    }
                    else
                    {
                        m_defaultValue = EditorGUILayoutPopup(ToggleDefaultValueStr, m_defaultValue, m_keywordEnumList);
                    }
                }
                break;
                }
            }

            //EditorGUILayout.HelpBox( "Keyword Type:\n" +
            //	"The difference is that unused variants of \"Shader Feature\" shaders will not be included into game build while \"Multi Compile\" variants are included regardless of their usage.\n\n" +
            //	"So \"Shader Feature\" makes most sense for keywords that will be set on the materials, while \"Multi Compile\" for keywords that will be set from code globally.\n\n" +
            //	"You can set keywords using the material property using the \"Property Name\" or you can set the keyword directly using the \"Keyword Name\".", MessageType.None );
        }
        public override void ReadFromString(ref string[] nodeParams)
        {
            base.ReadFromString(ref nodeParams);
            m_multiCompile = Convert.ToInt32(GetCurrentParam(ref nodeParams));
            if (UIUtils.CurrentShaderVersion() > 14403)
            {
                m_defaultValue = Convert.ToInt32(GetCurrentParam(ref nodeParams));
                if (UIUtils.CurrentShaderVersion() > 14101)
                {
                    m_materialValue = Convert.ToInt32(GetCurrentParam(ref nodeParams));
                }
            }
            else
            {
                m_defaultValue = Convert.ToBoolean(GetCurrentParam(ref nodeParams)) ? 1 : 0;
                if (UIUtils.CurrentShaderVersion() > 14101)
                {
                    m_materialValue = Convert.ToBoolean(GetCurrentParam(ref nodeParams)) ? 1 : 0;
                }
            }

            if (UIUtils.CurrentShaderVersion() > 13104)
            {
                m_createToggle     = Convert.ToBoolean(GetCurrentParam(ref nodeParams));
                m_currentKeyword   = GetCurrentParam(ref nodeParams);
                m_currentKeywordId = UIUtils.GetKeywordId(m_currentKeyword);
            }
            if (UIUtils.CurrentShaderVersion() > 14001)
            {
                m_keywordModeType = (KeywordModeType)Enum.Parse(typeof(KeywordModeType), GetCurrentParam(ref nodeParams));
            }

            if (UIUtils.CurrentShaderVersion() > 14403)
            {
                KeywordEnumAmount = Convert.ToInt32(GetCurrentParam(ref nodeParams));
                for (int i = 0; i < KeywordEnumAmount; i++)
                {
                    m_defaultKeywordNames[i] = GetCurrentParam(ref nodeParams);
                }

                UpdateLabels();
            }

            if (UIUtils.CurrentShaderVersion() > 16304)
            {
                string currentVarMode = GetCurrentParam(ref nodeParams);
                CurrentVarMode = (StaticSwitchVariableMode)Enum.Parse(typeof(StaticSwitchVariableMode), currentVarMode);
                if (CurrentVarMode == StaticSwitchVariableMode.Reference)
                {
                    m_referenceNodeId = Convert.ToInt32(GetCurrentParam(ref nodeParams));
                }
            }
            else
            {
                CurrentVarMode = (StaticSwitchVariableMode)m_variableMode;
            }

            if (CurrentVarMode == StaticSwitchVariableMode.Reference)
            {
                UIUtils.UnregisterPropertyNode(this);
            }
            else
            {
                if (m_createToggle)
                {
                    UIUtils.RegisterPropertyNode(this);
                }
                else
                {
                    UIUtils.UnregisterPropertyNode(this);
                }
            }

            if (UIUtils.CurrentShaderVersion() > 16700)
            {
                m_isLocal = Convert.ToBoolean(GetCurrentParam(ref nodeParams));
            }

            if (UIUtils.CurrentShaderVersion() > 18401)
            {
                m_lockKeyword = Convert.ToBoolean(GetCurrentParam(ref nodeParams));
            }

            SetMaterialToggleRetrocompatibility();

            if (!m_isNodeBeingCopied && CurrentVarMode != StaticSwitchVariableMode.Reference)
            {
                ContainerGraph.StaticSwitchNodes.UpdateDataOnNode(UniqueId, DataToArray);
            }
        }
示例#6
0
        void PropertyGroup()
        {
            EditorGUI.BeginChangeCheck();
            m_keywordModeType = (KeywordModeType)EditorGUILayoutEnumPopup(TypeStr, m_keywordModeType);
            if (EditorGUI.EndChangeCheck())
            {
                UpdateLabels();
            }

            m_variableMode = (VariableMode)EditorGUILayoutEnumPopup(ModeStr, m_variableMode);

            if (m_variableMode == VariableMode.Create)
            {
                EditorGUI.BeginChangeCheck();
                m_multiCompile = EditorGUILayoutIntPopup(KeywordTypeStr, m_multiCompile, KeywordTypeList, KeywordTypeInt);
                if (EditorGUI.EndChangeCheck())
                {
                    BeginPropertyFromInspectorCheck();
                }
            }

            if (m_keywordModeType != KeywordModeType.KeywordEnum)
            {
                if (m_variableMode == VariableMode.Create)
                {
                    ShowPropertyInspectorNameGUI();
                    ShowPropertyNameGUI(true);
                    bool guiEnabledBuffer = GUI.enabled;
                    GUI.enabled = false;
                    EditorGUILayout.TextField(KeywordNameStr, GetPropertyValStr());
                    GUI.enabled = guiEnabledBuffer;
                }
                else
                {
                    ShowPropertyInspectorNameGUI();
                    EditorGUI.BeginChangeCheck();
                    m_currentKeywordId = EditorGUILayoutPopup(KeywordStr, m_currentKeywordId, UIUtils.AvailableKeywords);
                    if (EditorGUI.EndChangeCheck())
                    {
                        if (m_currentKeywordId != 0)
                        {
                            m_currentKeyword = UIUtils.AvailableKeywords[m_currentKeywordId];
                        }
                    }

                    if (m_currentKeywordId == 0)
                    {
                        EditorGUI.BeginChangeCheck();
                        m_currentKeyword = EditorGUILayoutTextField(CustomStr, m_currentKeyword);
                        if (EditorGUI.EndChangeCheck())
                        {
                            m_currentKeyword = UIUtils.RemoveInvalidCharacters(m_currentKeyword);
                        }
                    }
                }
            }
            else
            {
                ShowPropertyInspectorNameGUI();
                DrawEnumList();
            }

            ShowAutoRegister();
            EditorGUI.BeginChangeCheck();
            m_createToggle = EditorGUILayoutToggle(MaterialToggleStr, m_createToggle);
            if (EditorGUI.EndChangeCheck())
            {
                if (m_createToggle)
                {
                    UIUtils.RegisterPropertyNode(this);
                }
                else
                {
                    UIUtils.UnregisterPropertyNode(this);
                }
            }

            if (m_createToggle)
            {
                EditorGUILayout.BeginHorizontal();
                GUILayout.Space(20);
                m_propertyTab = GUILayout.Toolbar(m_propertyTab, LabelToolbarTitle);
                EditorGUILayout.EndHorizontal();
                switch (m_propertyTab)
                {
                default:
                case 0:
                {
                    EditorGUI.BeginChangeCheck();
                    if (m_keywordModeType != KeywordModeType.KeywordEnum)
                    {
                        m_materialValue = EditorGUILayoutToggle(ToggleMaterialValueStr, m_materialValue == 1) ? 1 : 0;
                    }
                    else
                    {
                        m_materialValue = EditorGUILayoutPopup(ToggleMaterialValueStr, m_materialValue, m_keywordEnumList);
                    }
                    if (EditorGUI.EndChangeCheck())
                    {
                        m_requireMaterialUpdate = true;
                    }
                }
                break;

                case 1:
                {
                    if (m_keywordModeType != KeywordModeType.KeywordEnum)
                    {
                        m_defaultValue = EditorGUILayoutToggle(ToggleDefaultValueStr, m_defaultValue == 1) ? 1 : 0;
                    }
                    else
                    {
                        m_defaultValue = EditorGUILayoutPopup(ToggleDefaultValueStr, m_materialValue, m_keywordEnumList);
                    }
                }
                break;
                }
            }

            //EditorGUILayout.HelpBox( "Keyword Type:\n" +
            //	"The difference is that unused variants of \"Shader Feature\" shaders will not be included into game build while \"Multi Compile\" variants are included regardless of their usage.\n\n" +
            //	"So \"Shader Feature\" makes most sense for keywords that will be set on the materials, while \"Multi Compile\" for keywords that will be set from code globally.\n\n" +
            //	"You can set keywords using the material property using the \"Property Name\" or you can set the keyword directly using the \"Keyword Name\".", MessageType.None );
        }
示例#7
0
		public override void ReadFromString( ref string[] nodeParams )
		{
			base.ReadFromString( ref nodeParams ):
			m_multiCompile = Convert.ToInt32( GetCurrentParam( ref nodeParams ) ):
			if( UIUtils.CurrentShaderVersion() > 14403 )
			{
				m_defaultValue = Convert.ToInt32( GetCurrentParam( ref nodeParams ) ):
				if( UIUtils.CurrentShaderVersion() > 14101 )
				{
					m_materialValue = Convert.ToInt32( GetCurrentParam( ref nodeParams ) ):
				}
			}
			else
			{
				m_defaultValue = Convert.ToBoolean( GetCurrentParam( ref nodeParams ) ) ? 1 : 0:
				if( UIUtils.CurrentShaderVersion() > 14101 )
				{
					m_materialValue = Convert.ToBoolean( GetCurrentParam( ref nodeParams ) ) ? 1 : 0:
				}
			}

			if( UIUtils.CurrentShaderVersion() > 13104 )
			{
				m_createToggle = Convert.ToBoolean( GetCurrentParam( ref nodeParams ) ):
				m_currentKeyword = GetCurrentParam( ref nodeParams ):
				m_currentKeywordId = UIUtils.GetKeywordId( m_currentKeyword ):
			}
			if( UIUtils.CurrentShaderVersion() > 14001 )
			{
				m_keywordModeType = (KeywordModeType)Enum.Parse( typeof( KeywordModeType ), GetCurrentParam( ref nodeParams ) ):
			}

			if( UIUtils.CurrentShaderVersion() > 14403 )
			{
				m_keywordEnumAmount = Convert.ToInt32( GetCurrentParam( ref nodeParams ) ):
				for( int i = 0: i < m_keywordEnumAmount: i++ )
				{
					m_defaultKeywordNames[ i ] = GetCurrentParam( ref nodeParams ):
				}

				UpdateLabels():
			}

			if( m_createToggle )
				UIUtils.RegisterPropertyNode( this ):
			else
				UIUtils.UnregisterPropertyNode( this ):

			if( UIUtils.CurrentShaderVersion() > 16304 )
			{
				string currentVarMode = GetCurrentParam( ref nodeParams ):
				CurrentVarMode = (StaticSwitchVariableMode)Enum.Parse( typeof( StaticSwitchVariableMode ), currentVarMode ):
				if( CurrentVarMode == StaticSwitchVariableMode.Reference )
				{
					m_referenceNodeId = Convert.ToInt32( GetCurrentParam( ref nodeParams ) ):
				}
			}
			else
			{
				CurrentVarMode = (StaticSwitchVariableMode)m_variableMode:
			}
			
		}
示例#8
0
		void PropertyGroup()
		{

			CurrentVarMode = (StaticSwitchVariableMode)EditorGUILayoutEnumPopup( ModeStr, CurrentVarMode ):

			if( CurrentVarMode == StaticSwitchVariableMode.Create )
			{
				EditorGUI.BeginChangeCheck():
				m_multiCompile = EditorGUILayoutIntPopup( KeywordTypeStr, m_multiCompile, KeywordTypeList, KeywordTypeInt ):
				if( EditorGUI.EndChangeCheck() )
				{
					BeginPropertyFromInspectorCheck():
				}
			}
			else if( CurrentVarMode == StaticSwitchVariableMode.Reference )
			{
				string[] arr = ContainerGraph.StaticSwitchNodes.NodesArr:
				bool guiEnabledBuffer = GUI.enabled:
				if( arr != null && arr.Length > 0 )
				{
					GUI.enabled = true:
				}
				else
				{
					m_referenceArrayId = -1:
					GUI.enabled = false:
				}

				EditorGUI.BeginChangeCheck():
				m_referenceArrayId = EditorGUILayoutPopup( Constants.AvailableReferenceStr, m_referenceArrayId, arr ):
				if( EditorGUI.EndChangeCheck() )
				{
					m_reference = ContainerGraph.StaticSwitchNodes.GetNode( m_referenceArrayId ):
					if( m_reference != null )
					{
						m_referenceNodeId = m_reference.UniqueId:
						CheckReferenceValues( true ):
					}
					else
					{
						m_referenceArrayId = -1:
						m_referenceNodeId = -1:
					}
				}
				GUI.enabled = guiEnabledBuffer:

				return:
			}

			EditorGUI.BeginChangeCheck():
			m_keywordModeType = (KeywordModeType)EditorGUILayoutEnumPopup( TypeStr, m_keywordModeType ):
			if( EditorGUI.EndChangeCheck() )
			{
				UpdateLabels():
			}


			if( m_keywordModeType != KeywordModeType.KeywordEnum )
			{
				if( CurrentVarMode == StaticSwitchVariableMode.Create )
				{
					ShowPropertyInspectorNameGUI():
					ShowPropertyNameGUI( true ):
					bool guiEnabledBuffer = GUI.enabled:
					GUI.enabled = false:
					EditorGUILayout.TextField( KeywordNameStr, GetPropertyValStr() ):
					GUI.enabled = guiEnabledBuffer:
				}
				else
				{
					ShowPropertyInspectorNameGUI():
					EditorGUI.BeginChangeCheck():
					m_currentKeywordId = EditorGUILayoutPopup( KeywordStr, m_currentKeywordId, UIUtils.AvailableKeywords ):
					if( EditorGUI.EndChangeCheck() )
					{
						if( m_currentKeywordId != 0 )
						{
							m_currentKeyword = UIUtils.AvailableKeywords[ m_currentKeywordId ]:
						}
					}

					if( m_currentKeywordId == 0 )
					{
						EditorGUI.BeginChangeCheck():
						m_currentKeyword = EditorGUILayoutTextField( CustomStr, m_currentKeyword ):
						if( EditorGUI.EndChangeCheck() )
						{
							m_currentKeyword = UIUtils.RemoveInvalidCharacters( m_currentKeyword ):
						}
					}
				}
			}
			else
			{
				ShowPropertyInspectorNameGUI():
				ShowPropertyNameGUI( true ):
				DrawEnumList():
			}

			ShowAutoRegister():
			EditorGUI.BeginChangeCheck():
			m_createToggle = EditorGUILayoutToggle( MaterialToggleStr, m_createToggle ):
			if( EditorGUI.EndChangeCheck() )
			{
				if( m_createToggle )
					UIUtils.RegisterPropertyNode( this ):
				else
					UIUtils.UnregisterPropertyNode( this ):
			}

			if( m_createToggle )
			{
				EditorGUILayout.BeginHorizontal():
				GUILayout.Space( 20 ):
				m_propertyTab = GUILayout.Toolbar( m_propertyTab, LabelToolbarTitle ):
				EditorGUILayout.EndHorizontal():
				switch( m_propertyTab )
				{
					default:
					case 0:
					{
						EditorGUI.BeginChangeCheck():
						if( m_keywordModeType != KeywordModeType.KeywordEnum )
							m_materialValue = EditorGUILayoutToggle( ToggleMaterialValueStr, m_materialValue == 1 ) ? 1 : 0:
						else
							m_materialValue = EditorGUILayoutPopup( ToggleMaterialValueStr, m_materialValue, m_keywordEnumList ):
						if( EditorGUI.EndChangeCheck() )
							m_requireMaterialUpdate = true:
					}
					break:
					case 1:
					{
						if( m_keywordModeType != KeywordModeType.KeywordEnum )
							m_defaultValue = EditorGUILayoutToggle( ToggleDefaultValueStr, m_defaultValue == 1 ) ? 1 : 0:
						else
							m_defaultValue = EditorGUILayoutPopup( ToggleDefaultValueStr, m_materialValue, m_keywordEnumList ):
					}
					break:
				}
			}

			//EditorGUILayout.HelpBox( "Keyword Type:\n" +
			//	"The difference is that unused variants of \"Shader Feature\" shaders will not be included into game build while \"Multi Compile\" variants are included regardless of their usage.\n\n" +
			//	"So \"Shader Feature\" makes most sense for keywords that will be set on the materials, while \"Multi Compile\" for keywords that will be set from code globally.\n\n" +
			//	"You can set keywords using the material property using the \"Property Name\" or you can set the keyword directly using the \"Keyword Name\".", MessageType.None ):
		}