public void DisplayGUI() { MegaLoftLayerComplex layer = (MegaLoftLayerComplex)target; //MegaShapeLoft loft = layer.GetComponent<MegaShapeLoft>(); SetLimits(layer.gameObject); MegaShapeLoftEditor.PushCols(); GUI.color = Color.white; GUI.backgroundColor = layer.paramcol; GUI.contentColor = Color.white; EditorGUILayout.BeginVertical("TextArea"); layer.LayerName = EditorGUILayout.TextField(MegaToolTip.LayerName, layer.LayerName); layer.LayerEnabled = EditorGUILayout.Toggle(MegaToolTip.Enabled, layer.LayerEnabled); layer.paramcol = EditorGUILayout.ColorField(MegaToolTip.ParamCol, layer.paramcol); if (layer.LayerEnabled) { layer.Lock = EditorGUILayout.Toggle(MegaToolTip.Lock, layer.Lock); if (!layer.Lock) { layer.material = (Material)EditorGUILayout.ObjectField(MegaToolTip.Material, layer.material, typeof(Material), true); layer.layerPath = (MegaShape)EditorGUILayout.ObjectField(MegaToolTip.Path, layer.layerPath, typeof(MegaShape), true); if (layer.layerPath && layer.layerPath.splines != null) { if (layer.layerPath.splines.Count > 1) { layer.curve = EditorGUILayout.IntSlider(MegaToolTip.Curve, layer.curve, 0, layer.layerPath.splines.Count - 1); } if (layer.curve < 0) { layer.curve = 0; } if (layer.curve > layer.layerPath.splines.Count - 1) { layer.curve = layer.layerPath.splines.Count - 1; } } layer.SnapToPath = EditorGUILayout.Toggle("Snap To Path", layer.SnapToPath); layer.pathStart = EditorGUILayout.Slider(MegaToolTip.Start, layer.pathStart, sl, sh); layer.pathLength = EditorGUILayout.Slider(MegaToolTip.Length, layer.pathLength, ll, lh); layer.pathDist = EditorGUILayout.FloatField(MegaToolTip.Dist, layer.pathDist); layer.pathDist = Mathf.Clamp(layer.pathDist, dl, dh); //0.05f, 1.0f); EditorGUILayout.BeginVertical("Box"); layer.offset = EditorGUILayout.Vector3Field("Offset", layer.offset); layer.useOffsetX = EditorGUILayout.BeginToggleGroup(MegaToolTip.UseOffsetX, layer.useOffsetX); layer.offsetCrvX = EditorGUILayout.CurveField(MegaToolTip.OffsetCrvX, layer.offsetCrvX); EditorGUILayout.EndToggleGroup(); layer.useOffsetY = EditorGUILayout.BeginToggleGroup(MegaToolTip.UseOffsetY, layer.useOffsetY); layer.offsetCrvY = EditorGUILayout.CurveField(MegaToolTip.OffsetCrvY, layer.offsetCrvY); EditorGUILayout.EndToggleGroup(); layer.useOffsetZ = EditorGUILayout.BeginToggleGroup(MegaToolTip.UseOffsetZ, layer.useOffsetZ); layer.offsetCrvZ = EditorGUILayout.CurveField(MegaToolTip.OffsetCrvZ, layer.offsetCrvZ); EditorGUILayout.EndToggleGroup(); EditorGUILayout.EndVertical(); layer.frameMethod = (MegaFrameMethod)EditorGUILayout.EnumPopup("Frame Method", layer.frameMethod); layer.flip = EditorGUILayout.Toggle(MegaToolTip.Flip, layer.flip); layer.PathSteps = EditorGUILayout.IntField("Path Steps", layer.PathSteps); if (layer.PathSteps < 1) { layer.PathSteps = 1; } layer.PathTeeter = EditorGUILayout.Slider("Path Teeter", layer.PathTeeter, 0.0f, 1.0f); layer.advancedParams = MegaFoldOut.Start("Advanced Params", layer.advancedParams, new Color(0.5f, 0.5f, 1.0f)); //layer.advancedParams = MegaFoldOut.Foldout("Advanced Params", layer.advancedParams, new Color(0.5f, 0.5f, 1.0f)); //layer.advancedParams = EditorGUILayout.Foldout(layer.advancedParams, MegaToolTip.AdvancedParams); if (layer.advancedParams) { layer.easeType = (MegaLoftEaseType)EditorGUILayout.EnumPopup("Ease Type", layer.easeType); layer.useTwistCrv = EditorGUILayout.BeginToggleGroup("Use Twist", layer.useTwistCrv); layer.twistCrv = EditorGUILayout.CurveField("Twist Curve", layer.twistCrv); EditorGUILayout.EndToggleGroup(); layer.useScaleXCrv = EditorGUILayout.BeginToggleGroup("Use ScaleX", layer.useScaleXCrv); layer.scaleCrvX = EditorGUILayout.CurveField("Scale X Curve", layer.scaleCrvX); EditorGUILayout.EndToggleGroup(); layer.useScaleYCrv = EditorGUILayout.BeginToggleGroup("Use ScaleY", layer.useScaleYCrv); layer.scaleCrvY = EditorGUILayout.CurveField("Scale Y Curve", layer.scaleCrvY); EditorGUILayout.EndToggleGroup(); } MegaFoldOut.End(layer.advancedParams); //layer.showcrossparams = EditorGUILayout.Foldout(layer.showcrossparams, "Cross Params"); layer.showcrossparams = MegaFoldOut.Start("Cross Params", layer.showcrossparams, new Color(0.5f, 1.0f, 0.5f)); if (layer.showcrossparams) { //EditorGUILayout.BeginVertical("Box"); layer.crossStart = EditorGUILayout.Slider(MegaToolTip.CrossStart, layer.crossStart, csl, csh); layer.crossEnd = EditorGUILayout.Slider(MegaToolTip.CrossLength, layer.crossEnd, cll, clh); layer.CrossSteps = EditorGUILayout.IntField("Cross Steps", layer.CrossSteps); if (layer.CrossSteps < 1) { layer.CrossSteps = 1; } layer.crossRot = EditorGUILayout.Vector3Field("Cross Rotate", layer.crossRot); layer.crossScale = EditorGUILayout.Vector3Field("Cross Scale", layer.crossScale); layer.pivot = EditorGUILayout.Vector3Field("Pivot", layer.pivot); layer.useCrossScaleCrv = EditorGUILayout.BeginToggleGroup("Use Scale Curve", layer.useCrossScaleCrv); layer.crossScaleCrv = EditorGUILayout.CurveField("Scale", layer.crossScaleCrv); EditorGUILayout.EndToggleGroup(); //EditorGUILayout.EndVertical(); } MegaFoldOut.End(layer.showcrossparams); //layer.showuvparams = EditorGUILayout.Foldout(layer.showuvparams, MegaToolTip.UVParams); layer.showuvparams = MegaFoldOut.Start("UV Params", layer.showuvparams, new Color(1.0f, 0.5f, 0.5f)); if (layer.showuvparams) { //EditorGUILayout.BeginVertical("Box"); MegaShapeLoftEditor.PushCols(); GUI.color = Color.white; layer.UVOffset = EditorGUILayout.Vector2Field("UV Offset", layer.UVOffset); layer.UVRotate = EditorGUILayout.Vector2Field("UV Rotate", layer.UVRotate); layer.UVScale = EditorGUILayout.Vector2Field("UV Scale", layer.UVScale); layer.swapuv = EditorGUILayout.Toggle(MegaToolTip.SwapUV, layer.swapuv); layer.physuv = EditorGUILayout.Toggle(MegaToolTip.PhysicalUV, layer.physuv); layer.planaruv = EditorGUILayout.Toggle("Planar UV", layer.planaruv); layer.UVOrigin = (MegaLoftUVOrigin)EditorGUILayout.EnumPopup("UV Origin", layer.UVOrigin); MegaShapeLoftEditor.PopCols(); //EditorGUILayout.EndVertical(); } MegaFoldOut.End(layer.showuvparams); //layer.showCapParams = EditorGUILayout.Foldout(layer.showCapParams, MegaToolTip.CapParams); layer.showCapParams = MegaFoldOut.Start("Cap Params", layer.showCapParams, new Color(1.0f, 1.0f, 0.5f)); if (layer.showCapParams) { layer.capflip = EditorGUILayout.Toggle("Flip Caps", layer.capflip); layer.capStart = EditorGUILayout.BeginToggleGroup(MegaToolTip.CapStart, layer.capStart); layer.capStartMat = (Material)EditorGUILayout.ObjectField(MegaToolTip.CapStartMat, layer.capStartMat, typeof(Material), true); layer.capStartUVOffset = EditorGUILayout.Vector2Field("UV Offset", layer.capStartUVOffset); layer.capStartUVScale = EditorGUILayout.Vector2Field("UV Scale", layer.capStartUVScale); layer.capStartUVRot = EditorGUILayout.FloatField(MegaToolTip.CapStartRot, layer.capStartUVRot); EditorGUILayout.EndToggleGroup(); layer.capEnd = EditorGUILayout.BeginToggleGroup(MegaToolTip.CapEnd, layer.capEnd); layer.capEndMat = (Material)EditorGUILayout.ObjectField(MegaToolTip.CapEndMat, layer.capEndMat, typeof(Material), true); layer.capEndUVOffset = EditorGUILayout.Vector2Field("UV Offset", layer.capEndUVOffset); layer.capEndUVScale = EditorGUILayout.Vector2Field("UV Scale", layer.capEndUVScale); layer.capEndUVRot = EditorGUILayout.FloatField(MegaToolTip.CapEndRot, layer.capEndUVRot); EditorGUILayout.EndToggleGroup(); } MegaFoldOut.End(layer.showCapParams); //layer.showsections = EditorGUILayout.Foldout(layer.showsections, "Cross Sections"); layer.showsections = MegaFoldOut.Start("Cross Sections", layer.showsections, new Color(0.5f, 1.0f, 1.0f)); if (layer.showsections) { if (layer.sections == null || layer.sections.Count < 2) { EditorGUILayout.LabelField("At least 2 cross sections are required to build the loft"); } seccol = EditorGUILayout.ColorField("Sections", seccol); layer.handlesize = EditorGUILayout.FloatField("Handle Size", layer.handlesize); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Reset Sections")) { for (int i = 0; i < layer.sections.Count; i++) { layer.sections[i].alpha = (float)i / (float)(layer.sections.Count - 1); } GUI.changed = true; } if (layer.sections.Count == 0) { if (GUILayout.Button("Add Section")) { MegaLoftSection lsect = new MegaLoftSection(); layer.sections.Add(lsect); GUI.changed = true; } } EditorGUILayout.EndHorizontal(); for (int i = 0; i < layer.sections.Count; i++) { EditorGUILayout.BeginVertical("Box"); EditorGUILayout.LabelField("Cross " + i, ""); float min = 0.0f; float max = 1.0f; if (i > 0) { min = layer.sections[i - 1].alpha; } if (i < layer.sections.Count - 1) { max = layer.sections[i + 1].alpha; } float alpha = 0.0f; if (i == 0) { alpha = 0.0f; } else { if (i == layer.sections.Count - 1) { alpha = 1.0f; } else { alpha = EditorGUILayout.Slider("Alpha", layer.sections[i].alpha, min, max); } } if (alpha != layer.sections[i].alpha) { if (i > 0) { if (alpha < layer.sections[i - 1].alpha) { alpha = layer.sections[i - 1].alpha; } } if (i < layer.sections.Count - 1) { if (alpha > layer.sections[i + 1].alpha) { alpha = layer.sections[i + 1].alpha; } } layer.sections[i].alpha = alpha; } layer.sections[i].shape = (MegaShape)EditorGUILayout.ObjectField("Section", layer.sections[i].shape, typeof(MegaShape), true); if (layer.sections[i].shape != null) { if (layer.sections[i].shape.splines.Count > 1) { layer.sections[i].curve = EditorGUILayout.IntSlider("Curve", layer.sections[i].curve, 0, layer.sections[i].shape.splines.Count - 1); } layer.sections[i].snap = EditorGUILayout.Toggle("Snap", layer.sections[i].snap); if (layer.sections[i].curve < 0) { layer.sections[i].curve = 0; } if (layer.sections[i].curve > layer.sections[i].shape.splines.Count - 1) { layer.sections[i].curve = layer.sections[i].shape.splines.Count - 1; } } layer.sections[i].offset = EditorGUILayout.Vector3Field("Offset", layer.sections[i].offset); layer.sections[i].rot = EditorGUILayout.Vector3Field("Rotate", layer.sections[i].rot); layer.sections[i].scale = EditorGUILayout.Vector3Field("Scale", layer.sections[i].scale); layer.sections[i].uselen = EditorGUILayout.Toggle("Use Section Len", layer.sections[i].uselen); if (layer.sections[i].uselen) { layer.sections[i].start = EditorGUILayout.Slider("Start", layer.sections[i].start, csl, csh); layer.sections[i].length = EditorGUILayout.Slider("Length", layer.sections[i].length, cll, clh); } EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Add Section")) { MegaLoftSection lsect = new MegaLoftSection(); lsect.shape = layer.sections[i].shape; lsect.curve = layer.sections[i].curve; lsect.scale = layer.sections[i].scale; if (i == layer.sections.Count - 1) { int pi = i - 1; if (pi >= 0) { lsect.alpha = (layer.sections[pi].alpha + layer.sections[i].alpha) * 0.5f; } else { lsect.alpha = 1.0f; } layer.sections.Add(lsect); } else { int pi = i + 1; if (pi < layer.sections.Count - 1) { lsect.alpha = (layer.sections[pi].alpha + layer.sections[i].alpha) * 0.5f; } else { lsect.alpha = 1.0f; } layer.sections.Insert(i + 1, lsect); } GUI.changed = true; } if (GUILayout.Button("Delete Section")) { layer.sections.RemoveAt(i); i--; GUI.changed = true; } EditorGUILayout.EndHorizontal(); EditorGUILayout.EndVertical(); } MegaFoldOut.End(layer.showsections); if (layer.sections.Count > 0) { if (layer.sections[0].alpha != 0.0f) { layer.sections[0].alpha = 0.0f; } for (int i = 1; i < layer.sections.Count - 1; i++) { if (layer.sections[i].alpha <= layer.sections[i - 1].alpha) { layer.sections[i - 1].alpha = layer.sections[i].alpha; } if (layer.sections[i].alpha >= layer.sections[i + 1].alpha) { layer.sections[i].alpha = layer.sections[i + 1].alpha; } } if (layer.sections[layer.sections.Count - 1].alpha != 1.0f) { layer.sections[layer.sections.Count - 1].alpha = 1.0f; } } } } //EditorGUILayout.EndVertical(); //MegaShapeLoftEditor.PopCols(); } EditorGUILayout.EndVertical(); MegaShapeLoftEditor.PopCols(); }
public void DisplayGUI() { MegaLoftLayerMultiMat layer = (MegaLoftLayerMultiMat)target; SetLimits(layer.gameObject); MegaShapeLoftEditor.PushCols(); GUI.color = Color.white; GUI.backgroundColor = layer.paramcol; GUI.contentColor = Color.white; EditorGUILayout.BeginVertical("TextArea"); if (GUILayout.Button("Reset All Curves")) { layer.InitCurves(); GUI.changed = true; EditorUtility.SetDirty(target); } layer.LayerName = EditorGUILayout.TextField(MegaToolTip.LayerName, layer.LayerName); layer.LayerEnabled = EditorGUILayout.Toggle(MegaToolTip.Enabled, layer.LayerEnabled); layer.paramcol = EditorGUILayout.ColorField(MegaToolTip.ParamCol, layer.paramcol); if (layer.LayerEnabled) { layer.Lock = EditorGUILayout.Toggle(MegaToolTip.Lock, layer.Lock); if (!layer.Lock) { layer.material = (Material)EditorGUILayout.ObjectField(MegaToolTip.Material, layer.material, typeof(Material), true); layer.layerPath = (MegaShape)EditorGUILayout.ObjectField(MegaToolTip.Path, layer.layerPath, typeof(MegaShape), true); if (layer.layerPath && layer.layerPath.splines != null) { if (layer.layerPath.splines.Count > 1) { layer.curve = EditorGUILayout.IntSlider(MegaToolTip.Curve, layer.curve, 0, layer.layerPath.splines.Count - 1); } if (layer.curve < 0) { layer.curve = 0; } if (layer.curve > layer.layerPath.splines.Count - 1) { layer.curve = layer.layerPath.splines.Count - 1; } } layer.pathStart = EditorGUILayout.Slider(MegaToolTip.Start, layer.pathStart, sl, sh); layer.pathLength = EditorGUILayout.Slider(MegaToolTip.Length, layer.pathLength, ll, lh); layer.pathDist = EditorGUILayout.Slider(MegaToolTip.Dist, layer.pathDist, dl, dh); EditorGUILayout.BeginVertical("Box"); layer.offset = EditorGUILayout.Vector3Field("Offset", layer.offset); layer.useOffsetX = EditorGUILayout.BeginToggleGroup(MegaToolTip.UseOffsetX, layer.useOffsetX); layer.offsetCrvX = EditorGUILayout.CurveField(MegaToolTip.OffsetCrvX, layer.offsetCrvX); EditorGUILayout.EndToggleGroup(); layer.useOffsetY = EditorGUILayout.BeginToggleGroup(MegaToolTip.UseOffsetY, layer.useOffsetY); layer.offsetCrvY = EditorGUILayout.CurveField(MegaToolTip.OffsetCrvY, layer.offsetCrvY); EditorGUILayout.EndToggleGroup(); layer.useOffsetZ = EditorGUILayout.BeginToggleGroup(MegaToolTip.UseOffsetZ, layer.useOffsetZ); layer.offsetCrvZ = EditorGUILayout.CurveField(MegaToolTip.OffsetCrvZ, layer.offsetCrvZ); EditorGUILayout.EndToggleGroup(); layer.frameMethod = (MegaFrameMethod)EditorGUILayout.EnumPopup("Frame Method", layer.frameMethod); layer.useTwistCrv = EditorGUILayout.BeginToggleGroup(MegaToolTip.UseTwist, layer.useTwistCrv); layer.twistAmt = EditorGUILayout.FloatField(MegaToolTip.Twist, layer.twistAmt); layer.twistCrv = EditorGUILayout.CurveField(MegaToolTip.TwistCrv, layer.twistCrv); EditorGUILayout.EndToggleGroup(); //layer.color = EditorGUILayout.ColorField("Color", layer.color); //layer.colR = EditorGUILayout.CurveField("Red", layer.colR); //layer.colG = EditorGUILayout.CurveField("Green", layer.colG); //layer.colB = EditorGUILayout.CurveField("Blue", layer.colB); //layer.colA = EditorGUILayout.CurveField("Alpha", layer.colA); EditorGUILayout.EndVertical(); DisplayMaterialSections(layer); //layer.showcrossparams = EditorGUILayout.Foldout(layer.showcrossparams, MegaToolTip.CrossParams); //"Cross Params"); layer.showcrossparams = MegaFoldOut.Start("Cross Params", layer.showcrossparams, new Color(0.5f, 1.0f, 0.5f)); if (layer.showcrossparams) { //EditorGUILayout.BeginVertical("Box"); layer.layerSection = (MegaShape)EditorGUILayout.ObjectField(MegaToolTip.Section, layer.layerSection, typeof(MegaShape), true); if (layer.layerSection && layer.layerSection.splines != null) { if (layer.layerSection.splines.Count > 1) { layer.crosscurve = EditorGUILayout.IntSlider(MegaToolTip.Curve, layer.crosscurve, 0, layer.layerSection.splines.Count - 1); layer.snap = EditorGUILayout.Toggle(MegaToolTip.Snap, layer.snap); } if (layer.crosscurve < 0) { layer.crosscurve = 0; } if (layer.crosscurve > layer.layerSection.splines.Count - 1) { layer.crosscurve = layer.layerSection.splines.Count - 1; } } //layer.alignCross = EditorGUILayout.Toggle("Align Cross", layer.alignCross); layer.alignCross = EditorGUILayout.Slider("Align Cross", layer.alignCross, 0.0f, 1.0f); layer.crossStart = EditorGUILayout.Slider(MegaToolTip.CrossStart, layer.crossStart, csl, csh); layer.crossEnd = EditorGUILayout.Slider(MegaToolTip.CrossLength, layer.crossEnd, cll, clh); //layer.crossDist = EditorGUILayout.Slider(MegaToolTip.CrossDist, layer.crossDist, cdl, cdh); //0.025f, 1.0f); layer.crossRot = EditorGUILayout.Vector3Field("Cross Rotate", layer.crossRot); layer.crossScale = EditorGUILayout.Vector3Field("Cross Scale", layer.crossScale); layer.pivot = EditorGUILayout.Vector3Field("Pivot", layer.pivot); //layer.includeknots = EditorGUILayout.Toggle(MegaToolTip.IncludeKnots, layer.includeknots); layer.useCrossScaleCrv = EditorGUILayout.BeginToggleGroup(MegaToolTip.UseCrossScale, layer.useCrossScaleCrv); layer.crossScaleCrv = EditorGUILayout.CurveField(MegaToolTip.CrossScaleCrv, layer.crossScaleCrv); layer.scaleoff = EditorGUILayout.Slider(MegaToolTip.CrossOff, layer.scaleoff, -1.0f, 1.0f); layer.sepscale = EditorGUILayout.Toggle(MegaToolTip.SeperateScale, layer.sepscale); EditorGUILayout.EndToggleGroup(); if (layer.sepscale) { layer.useCrossScaleCrvY = EditorGUILayout.BeginToggleGroup(MegaToolTip.UseCrossScaleY, layer.useCrossScaleCrvY); layer.crossScaleCrvY = EditorGUILayout.CurveField(MegaToolTip.CrossScaleCrvY, layer.crossScaleCrvY); layer.scaleoffY = EditorGUILayout.Slider(MegaToolTip.CrossOffY, layer.scaleoffY, -1.0f, 1.0f); EditorGUILayout.EndToggleGroup(); } //EditorGUILayout.EndVertical(); } MegaFoldOut.End(layer.showcrossparams); #if false //layer.showadvancedparams = EditorGUILayout.Foldout(layer.showadvancedparams, MegaToolTip.AdvancedParams); layer.showadvancedparams = MegaFoldOut.Start("Advanced Params", layer.showadvancedparams, new Color(0.5f, 0.5f, 1.0f)); if (layer.showadvancedparams) { //layer.optimize = EditorGUILayout.Toggle("Optimize", layer.optimize); //layer.maxdeviation = EditorGUILayout.Slider("Max Deviation", layer.maxdeviation, 0.0f, 90.0f); layer.flip = EditorGUILayout.Toggle(MegaToolTip.Flip, layer.flip); layer.snapTop = EditorGUILayout.BeginToggleGroup(MegaToolTip.SnapTop, layer.snapTop); layer.Top = EditorGUILayout.FloatField(MegaToolTip.Top, layer.Top); EditorGUILayout.EndToggleGroup(); layer.snapBottom = EditorGUILayout.BeginToggleGroup(MegaToolTip.SnapBottom, layer.snapBottom); layer.Bottom = EditorGUILayout.FloatField(MegaToolTip.Bottom, layer.Bottom); EditorGUILayout.EndToggleGroup(); layer.clipTop = EditorGUILayout.BeginToggleGroup(MegaToolTip.ClipTop, layer.clipTop); layer.clipTopVal = EditorGUILayout.FloatField(MegaToolTip.ClipTopVal, layer.clipTopVal); EditorGUILayout.EndToggleGroup(); layer.clipBottom = EditorGUILayout.BeginToggleGroup(MegaToolTip.ClipBottom, layer.clipBottom); layer.clipBottomVal = EditorGUILayout.FloatField(MegaToolTip.ClipBottomVal, layer.clipBottomVal); EditorGUILayout.EndToggleGroup(); } MegaFoldOut.End(layer.showadvancedparams); #endif #if false //layer.showuvparams = EditorGUILayout.Foldout(layer.showuvparams, MegaToolTip.UVParams); layer.showuvparams = MegaFoldOut.Start("UV Params", layer.showuvparams, new Color(1.0f, 0.5f, 0.5f)); if (layer.showuvparams) { //EditorGUILayout.BeginVertical("Box"); MegaShapeLoftEditor.PushCols(); GUI.color = Color.white; layer.UVOffset = EditorGUILayout.Vector2Field("UV Offset", layer.UVOffset); layer.UVScale = EditorGUILayout.Vector2Field("UV Scale", layer.UVScale); layer.swapuv = EditorGUILayout.Toggle(MegaToolTip.SwapUV, layer.swapuv); layer.physuv = EditorGUILayout.Toggle(MegaToolTip.PhysicalUV, layer.physuv); layer.uvcalcy = EditorGUILayout.Toggle("Calc Y", layer.uvcalcy); layer.UVOrigin = (MegaLoftUVOrigin)EditorGUILayout.EnumPopup("UV origin", layer.UVOrigin); layer.planarMapping = EditorGUILayout.BeginToggleGroup("Planar", layer.planarMapping); layer.planarAxis = (MegaAxis)EditorGUILayout.EnumPopup("Axis", layer.planarAxis); //layer.planarWorld = EditorGUILayout.Toggle("World", layer.planarWorld); layer.planarMode = (MegaPlanarMode)EditorGUILayout.EnumPopup("Mode", layer.planarMode); bool lockWorld = EditorGUILayout.Toggle("Lock World", layer.lockWorld); if (lockWorld != layer.lockWorld) { layer.lockWorld = lockWorld; if (lockWorld) { layer.lockedTM = layer.transform.localToWorldMatrix; } } EditorGUILayout.EndToggleGroup(); layer.sideViewUV = EditorGUILayout.BeginToggleGroup("Side View", layer.sideViewUV); layer.sideViewAxis = (MegaAxis)EditorGUILayout.EnumPopup("Side Axis", layer.sideViewAxis); EditorGUILayout.EndToggleGroup(); MegaShapeLoftEditor.PopCols(); //EditorGUILayout.EndVertical(); } MegaFoldOut.End(layer.showuvparams); #endif #if false //layer.showCapParams = EditorGUILayout.Foldout(layer.showCapParams, MegaToolTip.CapParams); layer.showCapParams = MegaFoldOut.Start("Cap Params", layer.showCapParams, new Color(1.0f, 1.0f, 0.5f)); if (layer.showCapParams) { layer.capflip = EditorGUILayout.Toggle("Flip Caps", layer.capflip); layer.capStart = EditorGUILayout.BeginToggleGroup(MegaToolTip.CapStart, layer.capStart); layer.capStartMat = (Material)EditorGUILayout.ObjectField(MegaToolTip.CapStartMat, layer.capStartMat, typeof(Material), true); layer.capStartUVOffset = EditorGUILayout.Vector2Field("UV Offset", layer.capStartUVOffset); layer.capStartUVScale = EditorGUILayout.Vector2Field("UV Scale", layer.capStartUVScale); layer.capStartUVRot = EditorGUILayout.FloatField(MegaToolTip.CapStartRot, layer.capStartUVRot); EditorGUILayout.EndToggleGroup(); layer.capEnd = EditorGUILayout.BeginToggleGroup(MegaToolTip.CapEnd, layer.capEnd); layer.capEndMat = (Material)EditorGUILayout.ObjectField(MegaToolTip.CapEndMat, layer.capEndMat, typeof(Material), true); layer.capEndUVOffset = EditorGUILayout.Vector2Field("UV Offset", layer.capEndUVOffset); layer.capEndUVScale = EditorGUILayout.Vector2Field("UV Scale", layer.capEndUVScale); layer.capEndUVRot = EditorGUILayout.FloatField(MegaToolTip.CapEndRot, layer.capEndUVRot); EditorGUILayout.EndToggleGroup(); } MegaFoldOut.End(layer.showCapParams); #endif layer.showConformParams = MegaFoldOut.Start("Conform Params", layer.showConformParams, new Color(1.0f, 1.0f, 0.5f)); if (layer.showConformParams) { layer.conform = EditorGUILayout.BeginToggleGroup("Conform", layer.conform); GameObject contarget = (GameObject)EditorGUILayout.ObjectField("Target", layer.target, typeof(GameObject), true); if (contarget != layer.target) { layer.SetTarget(contarget); } layer.conformAmount = EditorGUILayout.Slider("Amount", layer.conformAmount, 0.0f, 1.0f); layer.raystartoff = EditorGUILayout.FloatField("Ray Start Off", layer.raystartoff); layer.conformOffset = EditorGUILayout.FloatField("Conform Offset", layer.conformOffset); layer.raydist = EditorGUILayout.FloatField("Ray Dist", layer.raydist); EditorGUILayout.EndToggleGroup(); } MegaFoldOut.End(layer.showConformParams); } } EditorGUILayout.EndVertical(); MegaShapeLoftEditor.PopCols(); }
public void DisplayGUI() { MegaLoftLayerClone layer = (MegaLoftLayerClone)target; MegaShapeLoftEditor.PushCols(); MegaShapeLoft loft = layer.GetComponent <MegaShapeLoft>(); float sl = -1.0f; float sh = 1.0f; float ll = 0.001f; float lh = 2.0f; float csl = -1.0f; float csh = 1.0f; if (loft) { sl = loft.startLow; sh = loft.startHigh; ll = loft.lenLow; lh = loft.lenHigh; csl = loft.crossLow; csh = loft.crossHigh; } GUI.color = Color.white; GUI.backgroundColor = layer.paramcol; GUI.contentColor = Color.white; EditorGUILayout.BeginVertical("TextArea"); layer.LayerName = EditorGUILayout.TextField(MegaToolTip.LayerName, layer.LayerName); layer.LayerEnabled = EditorGUILayout.Toggle(MegaToolTip.Enabled, layer.LayerEnabled); layer.paramcol = EditorGUILayout.ColorField(MegaToolTip.ParamCol, layer.paramcol); if (layer.LayerEnabled) { layer.Lock = EditorGUILayout.Toggle("Lock", layer.Lock); if (!layer.Lock) { //layer.material = (Material)EditorGUILayout.ObjectField(MegaToolTip.Material, layer.material, typeof(Material), true); layer.surfaceLoft = (MegaShapeLoft)EditorGUILayout.ObjectField("Surface", layer.surfaceLoft, typeof(MegaShapeLoft), true); //layer.surfaceLayer = EditorGUILayout.Popup("Layer", layer.surfaceLayer + 1, MegaShapeUtils.GetLayers(layer.surfaceLoft)) - 1; int surfaceLayer = MegaShapeUtils.FindLayer(layer.surfaceLoft, layer.surfaceLayer); surfaceLayer = EditorGUILayout.Popup("Layer", surfaceLayer + 1, MegaShapeUtils.GetLayers(layer.surfaceLoft)) - 1; if (layer.surfaceLoft) { for (int i = 0; i < layer.surfaceLoft.Layers.Length; i++) { //if ( layer.surfaceLoft.Layers[i].GetType() == typeof(MegaLoftLayerSimple) ) if (layer.surfaceLoft.Layers[i] is MegaLoftLayerSimple) { if (surfaceLayer == 0) { layer.surfaceLayer = i; break; } surfaceLayer--; } } } else { layer.surfaceLayer = surfaceLayer; } layer.start = EditorGUILayout.Slider(MegaToolTip.Start, layer.start, sl, sh); layer.Length = EditorGUILayout.Slider(MegaToolTip.Length, layer.Length, ll, lh); //layer.CrossAlpha = EditorGUILayout.Slider("Cross Alpha", layer.CrossAlpha, csl, csh); //-1.0f, 2.0f); layer.CrossAlpha = Slider("Cross Alpha", layer.CrossAlpha, csl, csh); //-1.0f, 2.0f); layer.CalcUp = EditorGUILayout.Toggle("Calc Up", layer.CalcUp); if (!layer.CalcUp) { layer.RemoveDof = EditorGUILayout.FloatField("UpRight", layer.RemoveDof); } //Vector3 off = EditorGUILayout.Vector3Field("Offset", layer.Offset); //layer.Offset += (layer.Offset - off) * 0.1f; layer.Offset = Vector3Field("Offset", layer.Offset); //layer.Offset = EditorGUILayout.Vector3Field("Offset", layer.Offset); layer.rot = EditorGUILayout.Vector3Field("Rotate", layer.rot); layer.tmrot = EditorGUILayout.Vector3Field("TMRotate", layer.tmrot); layer.tangent = EditorGUILayout.FloatField("Tangent", layer.tangent); layer.axis = (MegaAxis)EditorGUILayout.EnumPopup("Axis", layer.axis); layer.useTwist = EditorGUILayout.BeginToggleGroup(MegaToolTip.UseTwist, layer.useTwist); layer.twist = EditorGUILayout.FloatField(MegaToolTip.Twist, layer.twist); layer.twistCrv = EditorGUILayout.CurveField(MegaToolTip.TwistCrv, layer.twistCrv); EditorGUILayout.EndToggleGroup(); // Advanced layer.RemoveDof = EditorGUILayout.FloatField("UpRight", layer.RemoveDof); layer.GlobalScale = EditorGUILayout.FloatField("Scale", layer.GlobalScale); layer.useCrossCrv = EditorGUILayout.BeginToggleGroup("Use Cross Crv", layer.useCrossCrv); layer.CrossCrv = EditorGUILayout.CurveField("Cross Crv", layer.CrossCrv); EditorGUILayout.EndToggleGroup(); // Start Info //layer.showstartparams = EditorGUILayout.Foldout(layer.showstartparams, "Start Params"); layer.showstartparams = MegaFoldOut.Start("Start Params", layer.showstartparams, new Color(1.0f, 0.5f, 0.5f)); if (layer.showstartparams) { //EditorGUILayout.BeginVertical("TextArea"); layer.StartEnabled = EditorGUILayout.Toggle("Enabled", layer.StartEnabled); layer.startObj = (GameObject)EditorGUILayout.ObjectField("Mesh", layer.startObj, typeof(GameObject), true); layer.startObj = MegaMeshCheck.ValidateObj(layer.startObj); //layer.StartOff = EditorGUILayout.Vector3Field("Offset", layer.StartOff); layer.StartOff = Vector3Field("Offset", layer.StartOff); layer.StartScale = EditorGUILayout.Vector3Field("Scale", layer.StartScale); layer.StartGap = FloatField("Gap", layer.StartGap); //EditorGUILayout.EndVertical(); } MegaFoldOut.End(layer.showstartparams); // Main Info //layer.showmainparams = EditorGUILayout.Foldout(layer.showmainparams, "Main Params"); layer.showmainparams = MegaFoldOut.Start("Main Params", layer.showmainparams, new Color(0.5f, 1.0f, 0.5f)); if (layer.showmainparams) { //EditorGUILayout.BeginVertical("TextArea"); layer.MainEnabled = EditorGUILayout.Toggle("Enabled", layer.MainEnabled); layer.mainObj = (GameObject)EditorGUILayout.ObjectField("Mesh", layer.mainObj, typeof(GameObject), true); layer.mainObj = MegaMeshCheck.ValidateObj(layer.mainObj); //layer.MainOff = EditorGUILayout.Vector3Field("Offset", layer.MainOff); layer.MainOff = Vector3Field("Offset", layer.MainOff); layer.MainScale = EditorGUILayout.Vector3Field("Scale", layer.MainScale); if (layer.MainScale.x < 0.01f) { layer.MainScale.x = 0.01f; } if (layer.MainScale.y < 0.01f) { layer.MainScale.y = 0.01f; } if (layer.MainScale.z < 0.1f) { layer.MainScale.z = 0.1f; } layer.Gap = FloatField("Gap", layer.Gap); //EditorGUILayout.EndVertical(); } MegaFoldOut.End(layer.showmainparams); // End Info //layer.showendparams = EditorGUILayout.Foldout(layer.showendparams, "End Params"); layer.showendparams = MegaFoldOut.Start("End Params", layer.showendparams, new Color(0.5f, 0.5f, 1.0f)); if (layer.showendparams) { //EditorGUILayout.BeginVertical("TextArea"); layer.EndEnabled = EditorGUILayout.Toggle("Enabled", layer.EndEnabled); layer.endObj = (GameObject)EditorGUILayout.ObjectField("Mesh", layer.endObj, typeof(GameObject), true); layer.endObj = MegaMeshCheck.ValidateObj(layer.endObj); //layer.EndOff = EditorGUILayout.Vector3Field("Offset", layer.EndOff); layer.EndOff = Vector3Field("Offset", layer.EndOff); layer.EndScale = EditorGUILayout.Vector3Field("Scale", layer.EndScale); layer.EndGap = FloatField("Gap", layer.EndGap); //EditorGUILayout.EndVertical(); } MegaFoldOut.End(layer.showendparams); } //EditorGUILayout.EndVertical(); //MegaShapeLoftEditor.PopCols(); } EditorGUILayout.EndVertical(); MegaShapeLoftEditor.PopCols(); }
public void DisplayGUI() { MegaLoftLayerCloneSimple layer = (MegaLoftLayerCloneSimple)target; MegaShapeLoftEditor.PushCols(); GUI.color = Color.white; GUI.backgroundColor = layer.paramcol; GUI.contentColor = Color.white; //MegaShapeLoft loft = layer.GetComponent<MegaShapeLoft>(); SetLimits(layer.gameObject); EditorGUILayout.BeginVertical("TextArea"); layer.LayerName = EditorGUILayout.TextField(MegaToolTip.LayerName, layer.LayerName); layer.LayerEnabled = EditorGUILayout.Toggle(MegaToolTip.Enabled, layer.LayerEnabled); layer.paramcol = EditorGUILayout.ColorField(MegaToolTip.ParamCol, layer.paramcol); if (layer.LayerEnabled) { layer.Lock = EditorGUILayout.Toggle(MegaToolTip.Lock, layer.Lock); if (!layer.Lock) { // TODO: If null use material from main layer.material = (Material)EditorGUILayout.ObjectField(MegaToolTip.Material, layer.material, typeof(Material), true); layer.surfaceLoft = (MegaShapeLoft)EditorGUILayout.ObjectField(MegaToolTip.Surface, layer.surfaceLoft, typeof(MegaShapeLoft), true); //layer.surfaceLayer = EditorGUILayout.Popup(MegaToolTip.Layer, layer.surfaceLayer + 1, MegaShapeUtils.GetLayersAsContent(layer.surfaceLoft)) - 1; int surfaceLayer = MegaShapeUtils.FindLayer(layer.surfaceLoft, layer.surfaceLayer); surfaceLayer = EditorGUILayout.Popup("Layer", surfaceLayer + 1, MegaShapeUtils.GetLayers(layer.surfaceLoft)) - 1; if (layer.surfaceLoft) { for (int i = 0; i < layer.surfaceLoft.Layers.Length; i++) { //if ( layer.surfaceLoft.Layers[i].GetType() == typeof(MegaLoftLayerSimple) ) if (layer.surfaceLoft.Layers[i] is MegaLoftLayerSimple) { if (surfaceLayer == 0) { layer.surfaceLayer = i; break; } surfaceLayer--; } } } else { layer.surfaceLayer = surfaceLayer; } layer.start = EditorGUILayout.Slider(MegaToolTip.Start, layer.start, sl, sh); layer.Length = EditorGUILayout.Slider(MegaToolTip.Length, layer.Length, ll, lh); layer.CrossAlpha = EditorGUILayout.Slider("Cross Alpha", layer.CrossAlpha, csl, csh); //-1.0f, 2.0f); layer.CalcUp = EditorGUILayout.Toggle("Calc Up", layer.CalcUp); if (!layer.CalcUp) { layer.RemoveDof = EditorGUILayout.FloatField("UpRight", layer.RemoveDof); } layer.Offset = EditorGUILayout.Vector3Field("Offset", layer.Offset); layer.rot = EditorGUILayout.Vector3Field("Rotate", layer.rot); layer.tmrot = EditorGUILayout.Vector3Field("TMRotate", layer.tmrot); layer.tangent = EditorGUILayout.FloatField("Tangent", layer.tangent); layer.axis = (MegaAxis)EditorGUILayout.EnumPopup("Axis", layer.axis); layer.useTwist = EditorGUILayout.BeginToggleGroup(MegaToolTip.UseTwist, layer.useTwist); layer.twist = EditorGUILayout.FloatField(MegaToolTip.Twist, layer.twist); layer.twistCrv = EditorGUILayout.CurveField(MegaToolTip.TwistCrv, layer.twistCrv); EditorGUILayout.EndToggleGroup(); // Advanced layer.GlobalScale = EditorGUILayout.FloatField("Scale", layer.GlobalScale); layer.useCrossCrv = EditorGUILayout.BeginToggleGroup("Use Cross Crv", layer.useCrossCrv); layer.CrossCrv = EditorGUILayout.CurveField("Cross Crv", layer.CrossCrv); EditorGUILayout.EndToggleGroup(); // Start Info //layer.showstartparams = EditorGUILayout.Foldout(layer.showstartparams, "Start Params"); layer.showstartparams = MegaFoldOut.Start("Start Params", layer.showstartparams, new Color(1.0f, 0.5f, 0.5f)); if (layer.showstartparams) { //EditorGUILayout.BeginVertical("TextArea"); layer.StartEnabled = EditorGUILayout.Toggle("Enabled", layer.StartEnabled); Mesh startObj = (Mesh)EditorGUILayout.ObjectField("Mesh", layer.startObj, typeof(Mesh), true); if (startObj != layer.startObj) { layer.SetMesh(startObj, 0); } layer.StartOff = EditorGUILayout.Vector3Field("Offset", layer.StartOff); layer.StartScale = EditorGUILayout.Vector3Field("Scale", layer.StartScale); layer.StartGap = EditorGUILayout.FloatField("Gap", layer.StartGap); //EditorGUILayout.EndVertical(); } MegaFoldOut.End(layer.showstartparams); // Main Info //layer.showmainparams = EditorGUILayout.Foldout(layer.showmainparams, "Main Params"); layer.showmainparams = MegaFoldOut.Start("Main Params", layer.showmainparams, new Color(0.5f, 1.0f, 0.5f)); if (layer.showmainparams) { //EditorGUILayout.BeginVertical("TextArea"); layer.MainEnabled = EditorGUILayout.Toggle("Enabled", layer.MainEnabled); Mesh mainObj = (Mesh)EditorGUILayout.ObjectField("Mesh", layer.mainObj, typeof(Mesh), true); if (mainObj != layer.mainObj) { layer.SetMesh(mainObj, 1); } layer.MainOff = EditorGUILayout.Vector3Field("Offset", layer.MainOff); layer.MainScale = EditorGUILayout.Vector3Field("Scale", layer.MainScale); layer.Gap = EditorGUILayout.FloatField("Gap", layer.Gap); //EditorGUILayout.EndVertical(); } MegaFoldOut.End(layer.showmainparams); // End Info //layer.showendparams = EditorGUILayout.Foldout(layer.showendparams, "End Params"); layer.showendparams = MegaFoldOut.Start("End Params", layer.showendparams, new Color(0.5f, 0.5f, 1.0f)); if (layer.showendparams) { //EditorGUILayout.BeginVertical("TextArea"); layer.EndEnabled = EditorGUILayout.Toggle("Enabled", layer.EndEnabled); Mesh endObj = (Mesh)EditorGUILayout.ObjectField("Mesh", layer.endObj, typeof(Mesh), true); if (endObj != layer.endObj) { layer.SetMesh(endObj, 2); } layer.EndOff = EditorGUILayout.Vector3Field("Offset", layer.EndOff); layer.EndScale = EditorGUILayout.Vector3Field("Scale", layer.EndScale); layer.EndGap = EditorGUILayout.FloatField("Gap", layer.EndGap); //EditorGUILayout.EndVertical(); } MegaFoldOut.End(layer.showendparams); } //EditorGUILayout.EndVertical(); //MegaShapeLoftEditor.PopCols(); } EditorGUILayout.EndVertical(); MegaShapeLoftEditor.PopCols(); }