public void CreateExpandItem(SignalPersistentSave signal)
 {
     ExpandedID = signal.CreateItem(Name);
     foreach (var drawer in Drawers)
     {
         drawer.CreateExpandItem(signal);
     }
 }
 public void CreateExpandItem(SignalPersistentSave signal)
 {
     ExpandedID = signal.CreateItem(Group.ReflectiveField.Name);
     foreach (var drawer in Drawers)
     {
         drawer.CreateExpandItem(signal);
     }
 }
        public void OnGUI(MaterialEditor materialEditor, MaterialProperty[] properties, IList <string> keywords, SignalPersistentSave signal, int mask)
        {
            bool isExpanded = signal[ExpandedID] = EditorGUILayout.Foldout(signal[ExpandedID], Name);

            if (isExpanded)
            {
                using (new EditorGUI.IndentLevelScope())
                {
                    foreach (var drawer in Drawers)
                    {
                        drawer.OnGUI(materialEditor, properties, keywords, signal, mask);
                    }
                }
            }
        }
            public void OnGUI(MaterialEditor materialEditor, MaterialProperty[] properties, IList <string> keywords, SignalPersistentSave signal, int mask)
            {
                int    newSelecteIndex;
                string displayName = EnumKeyword.ReflectiveField.Name;
                var    targetMat   = materialEditor.target as Material;

                int    selecteIndex = 0;
                string keyword      = null;

                foreach (var item in EnumKeyword)
                {
                    keyword = item.Value;
                    if (keyword != null && targetMat.IsKeywordEnabled(keyword))
                    {
                        break;
                    }
                    selecteIndex++;
                }

                if (selecteIndex >= EnumKeyword.EnumNames.Length)
                {
                    selecteIndex = EnumKeyword.EmptyKeywordIndex;
                }

                newSelecteIndex = EditorGUILayout.Popup(displayName, selecteIndex, EnumKeyword.EnumNames);
                keyword         = EnumKeyword.GetKeyword(newSelecteIndex * 2);
                if (keyword != null)
                {
                    keywords.Add(keyword);
                }
            }
 public void CreateExpandItem(SignalPersistentSave signal)
 {
     return;
 }
            public void OnGUI(MaterialEditor materialEditor, MaterialProperty[] properties, IList <string> keywords, SignalPersistentSave signal, int mask)
            {
                var  targetMat = materialEditor.target as Material;
                bool isEnabled = targetMat.IsKeywordEnabled(ShaderKeyword.Keyword);

                bool newValue = EditorGUILayout.Toggle(ShaderKeyword.ReflectiveField.Name, isEnabled);

                if (newValue)
                {
                    keywords.Add(ShaderKeyword.Keyword);
                }
            }
            public void OnGUI(MaterialEditor materialEditor, MaterialProperty[] properties, IList <string> keywords, SignalPersistentSave signal, int mask)
            {
                if ((mask & Field.Mask) == 0)
                {
                    return;
                }

                var    materialProperty = ShaderDrawerHelper.PublicFindProperty(Field.ShaderFieldName, properties);
                string displayName      = Field.ReflectiveField.Name;

                materialEditor.ShaderProperty(materialProperty, displayName);
            }