当前位置: 首页>>代码示例>>C#>>正文


C# MaterialEditor.DefaultShaderProperty方法代码示例

本文整理汇总了C#中UnityEditor.MaterialEditor.DefaultShaderProperty方法的典型用法代码示例。如果您正苦于以下问题:C# MaterialEditor.DefaultShaderProperty方法的具体用法?C# MaterialEditor.DefaultShaderProperty怎么用?C# MaterialEditor.DefaultShaderProperty使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在UnityEditor.MaterialEditor的用法示例。


在下文中一共展示了MaterialEditor.DefaultShaderProperty方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: OnGUI


//.........这里部分代码省略.........
                    //    }
                    case MaterialProperty.PropType.Color: // colors
                        {
                            EditorGUIUtility.labelWidth -= 30;
                            if (noAlphaFlag)
                            {
                                EditorGUI.ColorField(position, new GUIContent(label, ""), prop.colorValue, true, false, false, null);
                            }
                            else
                            {
                                editor.ColorProperty(position, prop, label);
                            }
                            break;
                        }
                    case MaterialProperty.PropType.Texture: // textures
                        {
                            EditorGUI.BeginChangeCheck();
                            if (miniThumbFlag)
                            {
                                editor.TexturePropertyMiniThumbnail(position, prop, label,"");
                            } else
                            {
                                editor.TextureProperty(position, prop, label, !noTileOffsetFlag);
                            }
                            if (EditorGUI.EndChangeCheck() && prop.textureValue!=null && sharedTextures!=null)
                            {
                                for(int j=0; j<sharedTextures.Length; j++)
                                {
                                    foreach(Material mat in editor.targets)
                                    {
                                        if (mat.HasProperty(sharedTextures[j]))
                                        {
                                            mat.SetTexture(sharedTextures[j], prop.textureValue);
                                        }
                                    }
                                }
                            }
                            break;
                        }
                    case MaterialProperty.PropType.Vector: // vectors
                        {
                            if (byLayerFlag)
                            {
                                //
                                // affect single vector component depending on active layer
                                //
                                int layerNum = customEditor.active_layer;
                                float pval = prop.vectorValue[layerNum];
                                float nval;
                                if (minVal == maxVal)
                                {
                                    // float
                                    EditorGUIUtility.labelWidth -= 23;
                                    nval = EditorGUI.FloatField(position, label, pval);
                                }
                                else
                                {
                                    // slider
                                    EditorGUIUtility.labelWidth = 160;
                                    nval = EditorGUI.Slider(position, label, pval, minVal, maxVal);
                                }
                                if (pval!=nval)
                                {
                                    for(int i=0; i< prop.targets.Length; i++)
                                    {
                                        Material mat = (prop.targets[i] as Material);
                                        Vector4 vec = mat.GetVector(prop.name);
                                        vec[layerNum] = nval;
                                        mat.SetVector(prop.name, vec);
                                    }
                                }
                            }
                            else
                            {
                                position.x += 12;
                                position.width -= 12;
                                editor.VectorProperty(position, prop, label);
                            }
                            break;
                        }
                    default:
                        {
                            if (customEditor.nextLabelWidth>0)
                            {
                                EditorGUIUtility.labelWidth = customEditor.nextLabelWidth;
                                customEditor.nextLabelWidth = 0;
                            } else
                            {
                                EditorGUIUtility.labelWidth -= 30;
                            }
                            editor.DefaultShaderProperty(position, prop, label);
                            break;
                        }
                }

			    EditorGUI.EndDisabledGroup();
		    }
        }

    }
开发者ID:Quantarium-Studios,项目名称:FLARE_Prototype,代码行数:101,代码来源:RTP_MaterialPropDrawer.cs


注:本文中的UnityEditor.MaterialEditor.DefaultShaderProperty方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。