////////////////////////////////////////////////////// // MK Toon Editor UI // // // // Created by Michael Kremmel // // www.michaelkremmel.de // // Copyright © 2021 All rights reserved. // ////////////////////////////////////////////////////// #if UNITY_EDITOR using UnityEngine; namespace MK.Toon.Editor { internal class UI { internal static readonly GUIContent empty = new GUIContent("", ""); ///////////////// // Options // ///////////////// internal static readonly GUIContent workflow = new GUIContent ( "Workflow", "Physically based workflow.\n\n" + "Metallic: Metallic + Smoothness\n\n" + "Specular: Specular + Smoothness\n\n" + "Roughness: Metallic + Roughness" ); internal static readonly GUIContent renderFace = new GUIContent ( "Render Face", "Culling / visibility of faces.\n\n" + "Front: Back faces are culled.\n" + "Back: Front faces are culled.\n" + "Double Sided: Front and back faces are rendered." ); internal static readonly GUIContent surface = new GUIContent ( "Surface", "Opaque: Surface is rendered opaque.\n\n" + "Transparent: Surface is rendered transparent." ); internal static readonly GUIContent zWrite = new GUIContent ( "Z-Write", "Controls if the material writes into the depth buffer." ); internal static readonly GUIContent blend = new GUIContent ( "Blending", "Controls how the surface color blends into the background.\n \n" + "Alpha/Defaul: Raw albedo alpha is used.\n\n" + "Premultiply: Similar to Alpha, but preserves reflections and highlights.\n\n" + "Additive: Blending is done additive as an extra layer.\n\n" + "Multiply: Background is multiplied into the surface color.\n\n" + "Custom: Overwrites the blending and lets you control it via two blend factors, a ZWrite and a ZTest" ); internal static readonly GUIContent zTest = new GUIContent ( "Z Test", "Controls how depth testing should be performed." ); internal static readonly GUIContent overwriteBlend = new GUIContent ( "Overwrite Blending", "Overwrites the blending and lets you control it via two blend factors, a ZWrite and a ZTest. If enabled the surface property does not touch the blending if its changed. The base blending compile directives are still used." ); internal static readonly GUIContent blendSrc = new GUIContent ( "Src Factor", "Generated color is multiplied by the Src Factor." ); internal static readonly GUIContent blendDst = new GUIContent ( "Dst Factor", "Color that is already on the screen is multiplied by the Dst Factor." ); internal static readonly GUIContent alphaClipping = new GUIContent ( "Alpha Clipping", "Material acts like a cutout shader." ); ///////////////// // Input // ///////////////// internal static readonly GUIContent albedoColor = new GUIContent ( "Color", "" ); internal static readonly GUIContent alphaCutoff = new GUIContent ( "Alpha Cutoff", "Pixels will be discarded if the albedo alpha minus Cutoff passes a value of < 0." ); internal static readonly GUIContent albedoMap = new GUIContent ( "Albedo", "Albedo (RGBA) represents the base of your Material. Color (RGB) and Alpha (A) are used." ); internal static readonly GUIContent specularColor = new GUIContent ( "Color", "" ); internal static readonly GUIContent smoothness = new GUIContent ( "Smoothness", "Physically Based Shading Smoothness. Controls how the surface spreads the highlights.\n\n" + "0/black: Rough highlight, rough surface\n" + "1/white: Sharp highlight, smooth surface" ); internal static readonly GUIContent specularMap = new GUIContent ( "Specular", "Physically Based Shading Specular.\n\n" + "0/black: Fully dielectric\n" + "1/white: Fully reflective\n" + "(A) is used to control the surface smoothness." ); internal static readonly GUIContent roughnessMap = new GUIContent ( "Roughness", "Physically Based Shading Roughness. Controls how the surface spreads the highlights. \n\n" + "0/black: Sharp highlight, smooth surface\n" + "1/white: Rough highlight, rough surface \n" + "(R) is used to control the surface roughness." ); internal static readonly GUIContent metallicMap = new GUIContent ( "Metallic", "Physically Based Shading Metallic value (R).\n\n" + "0/black: Fully dielectric\n" + "1/white: Fully metallic\n" + "(A) is used to control the surface smoothness on Metallic Workflow." ); internal static readonly GUIContent normalMapIntensity = new GUIContent ( "Normal Map Scale", "" ); internal static readonly GUIContent normalMap = new GUIContent ( "Normals", "Tangent spaced normal map + intensity." ); internal static readonly GUIContent heightMapScale = new GUIContent ( "Height Map Scale", "" ); internal static readonly GUIContent heightMap = new GUIContent ( "Height", "Height map used for parallax mapping and scaling.\n\n" + "(R) controls how much height/distortion is applied.\n" + "Slider controls the intensity of the parallax mapping." ); internal static readonly GUIContent lightTransmission = new GUIContent ( "Light Transmission", "" ); internal static readonly GUIContent lightTransmissionDistortion = new GUIContent ( "Distortion", "" ); internal static readonly GUIContent lightTransmissionColor = new GUIContent ( "Color", "" ); internal static readonly GUIContent thicknessMap = new GUIContent ( "Thickness", "Thickness Map, distortion and color.\n\n" + "(R) is used to control the thickness.\n" + "0/black: thick, zero light is transmitted\n" + "1/white: thin, light is fully transmitted\n\n" + "Slider controls how strong the light spreads based on the mesh normals.\n\n" + "Color picker defines the transmitted light tint." ); internal static readonly GUIContent occlusionMapScale = new GUIContent ( "Occlusion Map Scale", "" ); internal static readonly GUIContent occlusionMap = new GUIContent ( "Occlusion", "Direct/Indirect lighting occlusion map and intensity.\n\n" + "(R) controls how much direct light is recieved.\n" + "(G) controls how much indirect light is recieved.\n\n" + "0/black: lighting fully occluded\n" + "1/white: default lighting\n\n" + "Slider scales the intensity of the occlusion map." ); internal static readonly GUIContent emissionColor = new GUIContent ( "Color", "" ); internal static readonly GUIContent emissionMap = new GUIContent ( "Emission", "Emission Map (RGB) & Color (RGB). Emission makes the material emit light to the environment." ); ///////////////// // Detail // ///////////////// internal static readonly GUIContent detailBlend = new GUIContent ( "Blend", "" ); internal static readonly GUIContent detailColor = new GUIContent ( "Color", "" ); internal static readonly GUIContent detailMix = new GUIContent ( "Mix", "" ); internal static readonly GUIContent detailMap = new GUIContent ( "Detail", "Details (RGBA) & Color will be combined with the Albedo(RGB).\n\n" + "Blending:\n" + "Mix: albedo and detail is interpolated\n" + "Add: Albedo and detail are additive\n" + "Multiply: Detail is multiplied into albedo.\n\n" + "Detail (A) and slider can be used for visibility.\n" + "0: No detail visible\n" + "1: Detail fully visible" ); internal static readonly GUIContent detailNormalMapScale = new GUIContent ( "Scale", "" ); internal static readonly GUIContent detailNormalMap = new GUIContent ( "Normals", "Tangent spaced normal map + intensity.\n\n" + "Detail normals are automatically combined with the main normals." ); ///////////////// // Stylize // ///////////////// internal static readonly GUIContent wrappedLighting = new GUIContent ( "Wrapped Lighting", "If enabled the diffuse lighting is more soft (areas get lit more easily).\n\n" + "You may need to adjust your light threshold after enable/disable this setting." ); internal static readonly GUIContent receiveShadows = new GUIContent ( "Receive Shadows", "When enabled, other GameObjects can cast shadows onto this GameObject." ); internal static readonly GUIContent diffuseSmoothness = new GUIContent ( "Diffuse", "Smoothness of the diffuse lighting.\n\n" + "0: Hard edge for the light/shadow\n" + "1: Smooth interpolation for light/shadow" ); internal static readonly GUIContent diffuseThresholdOffset = new GUIContent ( "Diffuse", "Threshold in addition the light threshold." ); internal static readonly GUIContent specularSmoothness = new GUIContent ( "Specular", "Smoothness of the specular lighting.\n\n" + "0: Hard edge for the light/shadow\n" + "1: Smooth interpolation for light/shadow" ); internal static readonly GUIContent specularThresholdOffset = new GUIContent ( "Specular", "Threshold in addition the light threshold." ); internal static readonly GUIContent rimSmoothness = new GUIContent ( "Rim", "Smoothness of the rim lighting.\n\n" + "0: Hard edge for the light/shadow\n" + "1: Smooth interpolation for light/shadow" ); internal static readonly GUIContent rimThresholdOffset = new GUIContent ( "Rim", "Threshold in addition the light threshold." ); internal static readonly GUIContent lightTransmissionSmoothness = new GUIContent ( "Light Transmission", "Smoothness of the sss lighting.\n\n" + "0: Hard edge for the light/shadow\n" + "1: Smooth interpolation for light/shadow" ); internal static readonly GUIContent lightTransmissionThresholdOffset = new GUIContent ( "Light Transmission", "Threshold in addition the light threshold." ); internal static readonly GUIContent light = new GUIContent ( "Style", "The style defines the appearance of light.\n\n" + "Builtin: Lighting calculation has no custom style\n\n" + "Simple: Typical cel shading style. One light cut is applied to lighting.\n\n" + "Multi: A variation to the simple one. Multiple light cuts can be applied.\n\n" + "Ramp: Lighting is based on a 2D ramps (R)." ); internal static readonly GUIContent diffuseRamp = new GUIContent ( "Diffuse", "2D Ramp (R) / intensity and falloff for lighting.\n" + "Intensity: X axis, left/dark -> right/bright.\n" + "Falloff: Y axis, bottom/far -> top/near (non directional lights only)." ); internal static readonly GUIContent specularRamp = new GUIContent ( "Specular", "2D Ramp (R) / intensity and falloff for lighting.\n" + "Intensity: X axis, left/dark -> right/bright.\n" + "Falloff: Y axis, bottom/far -> top/near (non directional lights only)." ); internal static readonly GUIContent rimRamp = new GUIContent ( "Rim", "2D Ramp (R) / intensity and falloff for lighting.\n" + "Intensity: X axis, left/dark -> right/bright.\n" + "Falloff: Y axis, bottom/far -> top/near (non directional lights only)." ); internal static readonly GUIContent lightTransmissionRamp = new GUIContent ( "Light Transmission", "2D Ramp (R) / intensity and falloff for lighting.\n" + "Intensity: X axis, left/dark -> right/bright.\n" + "Falloff: Y axis, bottom/far -> top/near (non directional lights only)." ); internal static readonly GUIContent lightBands = new GUIContent ( "Bands", "Amount of light cuts." ); internal static readonly GUIContent lightBandsScale = new GUIContent ( "Bands Scale", "Interpolation of the light bands. A higher value will “push” the band more into shadowed areas." ); internal static readonly GUIContent lightThreshold = new GUIContent ( "Light Threshold", "Threshold defined for light/shadow. \n\n" + "0: Material is more lit (also depends on wrapped lighting => advanced tab). \n" + "1: Material is fully shadowed, no lights are visible." ); internal static readonly GUIContent thresholdMap = new GUIContent ( "Threshold", "Threshold texture and scaling. Value is added additive to the light threshold." ); internal static readonly GUIContent thresholdMapScale = new GUIContent ( "Scale", "" ); internal static readonly GUIContent goochRampIntensity = new GUIContent ( "Intensity", "" ); internal static readonly GUIContent goochRamp = new GUIContent ( "Ramp", "2D Ramp (RGB) / interpolated tint based on lighting. Does not affect the light intensity or falloff.\n\n" + "Intensity: X axis, left/dark -> right/bright.\n" + "Falloff: Y axis, bottom/far -> top/near (non directional lights only). \n\n" + "Slider is used for mixing tint into lighting." ); internal static readonly GUIContent goochBrightColor = new GUIContent ( "Bright", "" ); internal static readonly GUIContent goochBrightMap = new GUIContent ( "Bright", "Bright gooch colors are used for lit areas of the material. \n\n" + "Bright areas will interpolate between the albedo (RGB) and the bright gooch (RGB)." ); internal static readonly GUIContent goochDarkColor = new GUIContent ( "Dark", "" ); internal static readonly GUIContent goochDarkMap = new GUIContent ( "Dark", "Dark gooch colors are used for shadowed areas of the material. \n\n" + "Dark areas will interpolate between the albedo (RGB) and the dark gooch (RGB)." ); internal static readonly GUIContent colorGrading = new GUIContent ( "Color Grading", "Controls how the contrast, saturation and brightness is applied.\n\n" + "Off: Effect disabled.\n\n" + "Albedo: Effect is applied to input albedo only.\n\n" + "Final Output: Effect is applied to the final output." ); internal static readonly GUIContent contrast = new GUIContent ( "Contrast", "" ); internal static readonly GUIContent saturation = new GUIContent ( "Saturation", "" ); internal static readonly GUIContent brightness = new GUIContent ( "Brightness", "" ); internal static readonly GUIContent iridescence = new GUIContent ( "Iridescence", "Adds a Iridescence effect on top of the surface. Based on the viewing angle ares will change color gradually." ); internal static readonly GUIContent iridescenceRamp = new GUIContent ( "Ramp", "Ramp (RGB) defines the iridescence color based on the viewing angle.\n\n" + "Tint: X axis, left/dark -> right/bright.\n" + "Color (RGB) tints the effect additionally. (A) is used for visibility." ); internal static readonly GUIContent iridescenceSize = new GUIContent ( "Size", "Size of the iridescence effect." ); internal static readonly GUIContent iridescenceThresholdOffset = new GUIContent ( "Iridescence", "Threshold in addition the light threshold." ); internal static readonly GUIContent iridescenceSmoothness = new GUIContent ( "Iridescence", "Smoothness of the specular lighting." ); internal static readonly GUIContent iridescenceColor = new GUIContent ( "Color", "" ); internal static readonly GUIContent rim = new GUIContent ( "Rim", "Rim lighting can be applied as different variants. Lighting is based on the fresnel effect. Outer visible areas of the Material will be highlighted.\n\n" + "Off: Rim lighting is disabled.\n\n" + "Default: Rim lighting is applied to the whole material.\n\n" + "Split: Rim lighting is split between bright and dark areas." ); internal static readonly GUIContent rimColor = new GUIContent ( "Color", "Color (RGB) defines the resulting color. Alpha is used for visibility." ); internal static readonly GUIContent rimBrightColor = new GUIContent ( "Bright", "Color (RGB) defines the resulting color on lit areas. Alpha is used for visibility." ); internal static readonly GUIContent rimDarkColor = new GUIContent ( "Dark", "Color (RGB) defines the resulting color on shadowed areas. Alpha is used for visibility." ); internal static readonly GUIContent rimSize = new GUIContent ( "Size", "Size of the rim effect." ); internal static readonly GUIContent vertexAnimation = new GUIContent ( "Vertex Animation", ".\n\n" + "Off: Vertex Animation is disabled.\n" + "Sine: Sine based animation, applied in object space.\n" + "Pulse: Pulse styled animation.\n" + "Noise: Animated noise effect." ); internal static readonly GUIContent vertexAnimationStutter = new GUIContent ( "Stutter", "Enable stuttering for the vertex animation." ); internal static readonly GUIContent vertexAnimationMap = new GUIContent ( "Intensity", "Controls the intensity of the Vertex Animation. Map (R) is used for additional adjustments." ); internal static readonly GUIContent vertexAnimationIntensity = new GUIContent ( "Intensity", "" ); internal static readonly GUIContent vertexAnimationFrequency = new GUIContent ( "Frequency", "Frequency of the animation for X, Y, Z axis." ); internal static readonly GUIContent dissolve = new GUIContent ( "Dissolve", "A dissolving effect can be applied to the material based on a dissolve value and a Ramp (RGB)\n\n" + "Off: Dissolve is disabled\n\n" + "Simple: Dissolving is done via a map and a dissolve value.\n\n" + "Ramp: An additional edge effect for the dissolve is applied." ); internal static readonly GUIContent dissolveMap = new GUIContent ( "Dissolve", "Dissolve map (R) is used for the layout of the dissolve." ); internal static readonly GUIContent dissolveMapScale = new GUIContent ( "Scale", "" ); internal static readonly GUIContent dissolveAmount = new GUIContent ( "Amount", "0: Object fully visible.\n" + "1: Object fully dissolved." ); internal static readonly GUIContent dissolveBorderSize = new GUIContent ( "Border", "The border size is used to create a edge effect around the dissolve itself" ); internal static readonly GUIContent dissolveBorderRamp = new GUIContent ( "Ramp", "The ramp, border size and color is used to create a edge effect around the dissolve itself.\n\n" + "Colors are used from left to right." ); internal static readonly GUIContent dissolveBorderColor = new GUIContent ( "Color", "The color is used to tint the border." ); internal static readonly GUIContent artistic = new GUIContent ( "Artistic", "Artistic style gives your material a customization for the lighting based on input texture/s.\n\n" + "Off: Artistic style is disabled.\n\n" + "Drawn: Lighting is customized via a lookup texture (R) and two thresholds for lit and shadowed areas.\n\n" + "Hatching: Lighting is customized via two lookup textures (RGB). Six Map channels are used to control how the light interacts from dark to bright in the following order:\n" + "Hatching Map Dark: (R) => (G) => (B)\n" + "=> Hatching Map Bright: (R) => (G) => (B)\n\n" + "Sketch: Lighting is customized via a lookup texture (R) and interpolated into the lighting." ); internal static readonly GUIContent artisticProjection = new GUIContent ( "Projection", "The artistic customization can be projected via Tangent or Screen Space.\n\n" + "Tangent Space: Original UV coords are used\n\n" + "Screen Space: Projected onto the surface based on the view angle." ); internal static readonly GUIContent artisticStutterFreqency = new GUIContent ( "Frequency", "Animates the artistic effect to give it a constantly redrawn look. A value of 1 disables the animation." ); internal static readonly GUIContent drawnMapScale = new GUIContent ( "Scale", "" ); internal static readonly GUIContent drawnMap = new GUIContent ( "Drawn", "Lookup texture (R) to customize the lighting." ); internal static readonly GUIContent hatchingMapScale = new GUIContent ( "Scale", "" ); internal static readonly GUIContent hatchingBrightMap = new GUIContent ( "Bright", "Lookup texture for brighter areas:\n" + "(R) => (G) => (B)" ); internal static readonly GUIContent hatchingDarkMap = new GUIContent ( "Dark", "Lookup texture for darker areas:\n" + "(R) => (G) => (B)" ); internal static readonly GUIContent drawnClampMin = new GUIContent ( "Artistic Clamp Min", "Threshold to control the shadowed areas." ); internal static readonly GUIContent drawnClampMax = new GUIContent ( "Artistic Clamp Max", "Threshold to control the lit areas." ); internal static readonly GUIContent sketchMapScale = new GUIContent ( "Scale", "" ); internal static readonly GUIContent sketchMap = new GUIContent ( "Sketch", "Lookup texture (R) to customize the lighting." ); ///////////////// // Advanced // ///////////////// internal static readonly GUIContent diffuse = new GUIContent ( "Diffuse", "Diffuse lighting can be stylized the following way:\n\n" + "Lambert: The most simple lighting based lambertian reflectance.\n\n" + "Oren Nayar: A more precise lighting, which takes the roughness of the surface and the view angle into account.\n\n" + "Minnaert: Lighting adds some darkening limbs based on the view angle. Good for things like fabric.\n\n" + "Even without the matter of intended usage every diffuse style can give your model an unique style." ); internal static readonly GUIContent specular = new GUIContent ( "Specular", "Controls how the specular affects the lighting. \n\n" + "Off: Specular is disabled.\n\n" + "Isotropic: Round shaped specular highlight.\n\n" + "Anisotropic: Anisotrophic stretched specular highlights. Good for Hair / brushed metal." ); internal static readonly GUIContent specularIntensity = new GUIContent ( "Intensity", "Intensity/brightness of the specular highlight.\n\n" + "A physically correct value would be 1 (Built-in lighting style). However on some lighting styles you need to exposure your specular highlights." ); internal static readonly GUIContent anisotropy = new GUIContent ( "Anisotropy", "Anisotropic specular strech based on the tangents at a Range between -1 and 1." ); internal static readonly GUIContent lightTransmissionIntensity = new GUIContent ( "Intensity", "Intensity/brightness of the transmitted light.\n\n" + "A physically correct value would be 1 (Built-in lighting style). However on some lighting styles you need to exposure your specular highlights." ); internal static readonly GUIContent environmentReflections = new GUIContent ( "Environment Reflection", "Indirect Lighting from reflections / Global Illumination / Sky.\n\n" + "Off: Indirect Lighting is disabled.\n\n" + "Ambient: Indirect lighting only uses ambient color.\n\n" + "Advanced: Indirect lighting uses reflections / Sky / Ambient / GI." ); internal static readonly GUIContent fresnelHighlights = new GUIContent ( "Fresnel Highlights", "Physically based fresnel highlights" ); internal static readonly GUIContent stencil = new GUIContent ( "Stencil", "Use a custom stencil test based on the unity setup.\n\n" + "Builtin: Default Stencil will be used.\n\n" + "Custom: Define your own stencil test." ); internal static readonly GUIContent renderPriority = new GUIContent ( "Priority", "Determines the chronological rendering order for a Material. High values are rendered first." ); internal static readonly GUIContent stencilRef = new GUIContent ( "Ref", "" ); internal static readonly GUIContent stencilReadMask = new GUIContent ( "Read Mask", "" ); internal static readonly GUIContent stencilWriteMask = new GUIContent ( "Write Mask", "" ); internal static readonly GUIContent stencilComp = new GUIContent ( "Comp", "" ); internal static readonly GUIContent stencilPass = new GUIContent ( "Pass", "" ); internal static readonly GUIContent stencilFail = new GUIContent ( "Fail", "" ); internal static readonly GUIContent stencilZFail = new GUIContent ( "Z Fail", "" ); ///////////////// // Outline // ///////////////// internal static readonly GUIContent outline = new GUIContent ( "Outline", "Controls how the outline is created.\n\n" + "Hull Object: Outline is created as an inverted hull. It’s the most common per object outline method.\n\n" + "Hull Origin: Outline is created based on the object space vertex position as an inverted hull. Your geometry needs to be centered.\n\n" + "Hull Clip: Similar to the Hull Object method, but it is tweaked towards pixel perfection and avoid’s foreshortening" ); internal static readonly GUIContent outlineData = new GUIContent ( "Data", "Normal: Original normal of the mesh is used.\n\n" + "Baked: Outline is created using a different data set of normals. You can use the MK Mesh Utility to create new meshes with a modified UV7 channel or just average the mesh normals in your 3D program and save them to the UV7 channel. Baked normals can only work for static meshes." ); internal static readonly GUIContent outlineMap = new GUIContent ( "Width", "Size of the outline. Map (R) is used for an advanced size setup." ); internal static readonly GUIContent outlineColor = new GUIContent ( "Color", "Color of the outline." ); internal static readonly GUIContent outlineNoise = new GUIContent ( "Noise", "Noise effect applied to the outline." ); #if MK_TOON_OUTLINE_FADE internal static readonly GUIContent outlineFadeMin = new GUIContent ( "Fade Min", "Minimum required distance to show the outline." ); internal static readonly GUIContent outlineFadeMax = new GUIContent ( "Fade Max", "Maximum required distance to show the outline at full size." ); #endif ///////////////// // Refraction // ///////////////// internal static readonly GUIContent refractionDistortionMapScale = new GUIContent ( "Scale", "" ); internal static readonly GUIContent refractionDistortionMap = new GUIContent ( "DuDv", "Map to control the distortion effect. A normal or dudv map should be applied." ); internal static readonly GUIContent refractionDistortion = new GUIContent ( "Distortion", "Controls how much distortion is applied to the refraction." ); internal static readonly GUIContent indexOfRefraction = new GUIContent ( "IOR", "Index of refraction, controls how much the refraction is bending over the surface." ); internal static readonly GUIContent refractionDistortionFade = new GUIContent ( "Fade", "Controls how visible the refraction is.\n\n" + "0: No visible refraction.\n" + "1: refraction fully visible." ); ///////////////// // Particles // ///////////////// internal static readonly GUIContent flipbook = new GUIContent ( "Flipbook", "Blends the frames in a flip-book together in a smooth animation." ); internal static readonly GUIContent softFade = new GUIContent ( "Soft Fade", "Surface fade out if intersect with other geometry in the depthbuffer." ); internal static readonly GUIContent softFadeNearDistance = new GUIContent ( "Near", "" ); internal static readonly GUIContent softFadeFarDistance = new GUIContent ( "Far", "" ); internal static readonly GUIContent cameraFade = new GUIContent ( "Camera Fade", "Surface fade out when get close to the camera." ); internal static readonly GUIContent cameraFadeNearDistance = new GUIContent ( "Near", "" ); internal static readonly GUIContent cameraFadeFarDistance = new GUIContent ( "Far", "" ); internal static readonly GUIContent colorBlend = new GUIContent ( "Color Blend", "Controls how the input particle color gets applied to the particle surfaces." ); ///////////////// // Editor Only // ///////////////// internal static readonly GUIContent initialized = new GUIContent ( "Initialization", "Internal only, DONT TOUCH ME" ); internal static readonly GUIContent optionsTab = new GUIContent ( "Options", "" ); internal static readonly GUIContent inputTab = new GUIContent ( "Input", "" ); internal static readonly GUIContent stylizeTab = new GUIContent ( "Stylize", "" ); internal static readonly GUIContent advancedTab = new GUIContent ( "Advanced", "" ); internal static readonly GUIContent particlesTab = new GUIContent ( "Particles", "" ); internal static readonly GUIContent outlineTab = new GUIContent ( "Outline", "" ); internal static readonly GUIContent refractionTab = new GUIContent ( "Refraction", "" ); } } #endif