예제 #1
0
 public void Init(Vector3[] v, int[] t, int x, int z, float hoverOffset = 0.01f, WireframeMode mode = WireframeMode.Grid)
 {
     SetParameters(v, t, x, z);
     frameMode = mode;
     transform.Translate(0, hoverOffset, 0);
     Draw();
 }
        public static void SetMaterialKeywords(Material material)
        {
            if (material.HasProperty("_WireframeMode"))
            {
                WireframeMode wireframeMode = (WireframeMode)material.GetFloat("_WireframeMode");
                CoreUtils.SetKeyword(material, "_WIREFRAMEMODE_WORLDSPACE", wireframeMode == WireframeMode.WorldSpace);
            }

            if (material.HasProperty("_WireframeQuad"))
            {
                CoreUtils.SetKeyword(material, "_WIREFRAMEQUAD_ON", material.GetFloat("_WireframeQuad") != 0.0f);
            }

            if (material.HasProperty("_WireframeStyle"))
            {
                CoreUtils.SetKeyword(material, "_WIREFRAMESTYLE_ON", material.GetFloat("_WireframeStyle") != 0.0f);
            }

            if (material.HasProperty("_WireframeSqueeze"))
            {
                CoreUtils.SetKeyword(material, "_WIREFRAMESQUEEZE_ON", material.GetFloat("_WireframeSqueeze") != 0.0f);
            }

            if (material.HasProperty("_WireframeDash"))
            {
                CoreUtils.SetKeyword(material, "_WIREFRAMEDASH_ON", material.GetFloat("_WireframeDash") != 0.0f);
            }
        }
예제 #3
0
        public static WireframeMode NextWireFrameMode(WireframeMode val)
        {
            int newVal = (int)val;

            newVal++;
            if (newVal > (int)WireframeMode.GL_Lines)
            {
                newVal = (int)WireframeMode.None;
            }
            return((WireframeMode)newVal);
        }
        public static void DoWireframeStyle(WireframeProperties properties, MaterialEditor materialEditor)
        {
            materialEditor.ShaderProperty(properties.wireframeSqueeze, Styles.wireframeSqueezeText);

            bool enableSqueeze = properties.wireframeSqueeze.floatValue != 0;

            EditorGUI.BeginDisabledGroup(!enableSqueeze);
            EditorGUI.indentLevel++;
            materialEditor.ShaderProperty(properties.wireframeSqueezeMin, Styles.wireframeSqueezeMinText);
            materialEditor.ShaderProperty(properties.wireframeSqueezeMax, Styles.wireframeSqueezeMaxText);
            EditorGUI.indentLevel--;
            EditorGUI.EndDisabledGroup();

            materialEditor.ShaderProperty(properties.wireframeDash, Styles.wireframeDashText);

            bool enableDash = properties.wireframeDash.floatValue != 0;

            EditorGUI.BeginDisabledGroup(!enableDash);
            EditorGUI.indentLevel++;

            WireframeMode wireframeMode = (WireframeMode)properties.wireframeMode.floatValue;

            if (wireframeMode == WireframeMode.BarycentricSpace)
            {
                EditorGUI.BeginChangeCheck();
                var dashRepeat = (int)properties.wireframeDashRepeat.floatValue;
                dashRepeat = EditorGUILayout.IntSlider(Styles.wireframeDashRepeatText, dashRepeat, 1, 10);
                if (EditorGUI.EndChangeCheck())
                {
                    properties.wireframeDashRepeat.floatValue = dashRepeat;
                }
            }
            else
            {
                materialEditor.ShaderProperty(properties.wireframeDashRepeat, Styles.wireframeDashRepeatText);
            }

            materialEditor.ShaderProperty(properties.wireframeDashLength, Styles.wireframeDashLengthText);

            if (wireframeMode == WireframeMode.BarycentricSpace)
            {
                materialEditor.ShaderProperty(properties.wireframeDashOverlap, Styles.wireframeDashOverlapText);
            }

            EditorGUI.indentLevel--;
            EditorGUI.EndDisabledGroup();
        }
예제 #5
0
 public static WireframeMode NextWireFrameMode(WireframeMode val)
 {
     int newVal = (int)val;
     newVal++;
     if (newVal > (int)WireframeMode.GL_Lines) {
         newVal = (int)WireframeMode.None;
     }
     return (WireframeMode)newVal;
 }
예제 #6
0
 public void updateWireframeDisplayText(WireframeMode mode)
 {
     wireframeDisplay.Label = String.Format("press 'w' to toggle wireframe mode: [{0}]",
                                            mode);
 }