public override void OnInspectorGUI() { MegaBookBuilder mod = (MegaBookBuilder)target; //serializedObject.Update(); undoManager.CheckUndo(); #if !UNITY_5 EditorGUIUtility.LookLikeControls(); #endif bool update = false; bool updatemesh = false; if (Event.current.type == EventType.ExecuteCommand && Event.current.commandName != null) { if (Event.current.commandName == "UndoRedoPerformed") { mod.rebuild = true; } } //if ( GUILayout.Button("Apply Scaling") ) //{ //mod.ApplyScaling(); //} //EditorGUILayout.Slider(_prop_page, mod.MinPageVal(), mod.MaxPageVal(), new GUIContent("Page")); mod.page = EditorGUILayout.Slider("Page", mod.page, mod.MinPageVal(), mod.MaxPageVal()); if (GUI.changed) { serializedObject.ApplyModifiedProperties(); if (mod.linkeditpage) { mod.editpage = (int)(mod.page + 0.5f); mod.editpage = Mathf.Clamp(mod.editpage, 0, mod.pageparams.Count - 1); } mod.Flip = mod.page; mod.turnspd = 0.0f; EditorUtility.SetDirty(target); GUI.changed = false; } //mod.shuffle = EditorGUILayout.FloatField("Shuffle", mod.shuffle); //EditorGUILayout.PropertyField(_prop_linkeditpage, new GUIContent("Link Edit Page")); //EditorGUILayout.PropertyField(_prop_snap, new GUIContent("Snap")); //EditorGUILayout.PropertyField(_prop_turntime, new GUIContent("Turn Time")); mod.linkeditpage = EditorGUILayout.Toggle("Link Edit Page", mod.linkeditpage); mod.Snap = EditorGUILayout.Toggle("Snap", mod.Snap); mod.turntime = EditorGUILayout.FloatField("Turn Time", mod.turntime); //int ival = mod.NumPages; //EditorGUILayout.PropertyField(_prop_numpages, new GUIContent("Num Pages")); int ival = EditorGUILayout.IntField("Num Pages", mod.NumPages); if (ival < 1) { ival = 1; } //if ( mod.NumPages < 1 ) //mod.NumPages = 1; if (ival != mod.NumPages) { mod.NumPages = ival; updatemesh = true; } float val = 0.0f; bool bval = false; mod.showmeshoptions = EditorGUILayout.Foldout(mod.showmeshoptions, "Mesh Options"); if (mod.showmeshoptions) { EditorGUILayout.BeginVertical("box"); val = EditorGUILayout.FloatField("Page Length", mod.pageLength); if (val < 0.0f) { val = 0.0f; } if (val != mod.pageLength) { mod.pageLength = val; updatemesh = true; } val = EditorGUILayout.FloatField("Page Width", mod.pageWidth); if (val < 0.0f) { val = 0.0f; } if (val != mod.pageWidth) { mod.pageWidth = val; updatemesh = true; } val = EditorGUILayout.FloatField("Page Height", mod.pageHeight); if (val < 0.0f) { val = 0.0f; } if (val != mod.pageHeight) { mod.pageHeight = val; updatemesh = true; } ival = EditorGUILayout.IntField("Width Segs", mod.WidthSegs); if (ival != mod.WidthSegs) { mod.WidthSegs = ival; updatemesh = true; } ival = EditorGUILayout.IntField("Length Segs", mod.LengthSegs); if (ival != mod.LengthSegs) { mod.LengthSegs = ival; updatemesh = true; } ival = EditorGUILayout.IntField("Height Segs", mod.HeightSegs); if (ival != mod.HeightSegs) { mod.HeightSegs = ival; updatemesh = true; } bval = EditorGUILayout.Toggle("Spine Edge", mod.spineedge); if (bval != mod.spineedge) { mod.spineedge = bval; updatemesh = true; } bval = EditorGUILayout.Toggle("Page Hole Mesh", mod.useholepage); if (bval != mod.useholepage) { mod.useholepage = bval; updatemesh = true; } ival = EditorGUILayout.IntField("X Hole", mod.xhole); if (ival != mod.xhole) { mod.xhole = ival; updatemesh = true; } ival = EditorGUILayout.IntField("Y Hole", mod.yhole); if (ival != mod.yhole) { mod.yhole = ival; updatemesh = true; } mod.pagesizevariation = EditorGUILayout.Vector3Field("Variation", mod.pagesizevariation); if (GUI.changed) { updatemesh = true; } mod.pagesectioncrv = EditorGUILayout.CurveField("Vertex Dist", mod.pagesectioncrv); if (GUI.changed) { updatemesh = true; } mod.pagemesh = (Mesh)EditorGUILayout.ObjectField("Page Mesh", mod.pagemesh, typeof(Mesh), true); if (GUI.changed) { updatemesh = true; } mod.holemesh = (Mesh)EditorGUILayout.ObjectField("Hole Mesh", mod.holemesh, typeof(Mesh), true); if (GUI.changed) { updatemesh = true; } mod.pageobject = (GameObject)EditorGUILayout.ObjectField("Page Object", mod.pageobject, typeof(GameObject), false); if (GUI.changed) { updatemesh = true; } mod.holeobject = (GameObject)EditorGUILayout.ObjectField("Hole Object", mod.holeobject, typeof(GameObject), false); if (GUI.changed) { updatemesh = true; } mod.frontmat = EditorGUILayout.IntField("Front Mat ID", mod.frontmat); if (GUI.changed) { updatemesh = true; } mod.backmat = EditorGUILayout.IntField("Back Mat ID", mod.backmat); if (GUI.changed) { updatemesh = true; } mod.rotate = EditorGUILayout.Vector3Field("Rotate", mod.rotate); if (GUI.changed) { updatemesh = true; } mod.basematerial = (Material)EditorGUILayout.ObjectField("Front Material", mod.basematerial, typeof(Material), true); if (GUI.changed) { updatemesh = true; } mod.basematerial1 = (Material)EditorGUILayout.ObjectField("Back Material", mod.basematerial1, typeof(Material), true); if (GUI.changed) { updatemesh = true; } mod.basematerial2 = (Material)EditorGUILayout.ObjectField("Edge Material", mod.basematerial2, typeof(Material), true); if (GUI.changed) { updatemesh = true; } val = EditorGUILayout.FloatField("Page Gap", mod.pageGap); if (val != mod.pageGap) { mod.pageGap = val; update = true; } val = EditorGUILayout.Slider("Spine Radius", mod.spineradius, -1.0f, 1.0f); if (val != mod.spineradius) { mod.spineradius = val; update = true; } bval = EditorGUILayout.Toggle("Use Book Thickness", mod.usebookthickness); if (bval != mod.usebookthickness) { mod.usebookthickness = bval; update = true; } val = EditorGUILayout.FloatField("Book Thickness", mod.bookthickness); if (val != mod.bookthickness) { mod.bookthickness = val; update = true; } bval = EditorGUILayout.Toggle("Page Colliders", mod.updatecollider); if (bval != mod.updatecollider) { mod.updatecollider = bval; updatemesh = true; } bval = EditorGUILayout.BeginToggleGroup("Allow Color", mod.usecols); if (bval != mod.usecols) { mod.usecols = bval; updatemesh = true; } Color col = EditorGUILayout.ColorField("Color", mod.color); if (col != mod.color) { mod.color = col; updatemesh = true; } bval = EditorGUILayout.Toggle("Cast Shadows", mod.castshadows); if (bval != mod.castshadows) { mod.castshadows = bval; updatemesh = true; } bval = EditorGUILayout.Toggle("Receive Shadows", mod.receiveshadows); if (bval != mod.receiveshadows) { mod.receiveshadows = bval; updatemesh = true; } bval = EditorGUILayout.Toggle("Use Light Probes", mod.uselightprobes); if (bval != mod.uselightprobes) { mod.uselightprobes = bval; updatemesh = true; } EditorGUILayout.EndToggleGroup(); EditorGUILayout.EndVertical(); } mod.showflipoptions = EditorGUILayout.Foldout(mod.showflipoptions, "Page Turn Options"); if (mod.showflipoptions) { EditorGUILayout.BeginVertical("box"); mod.BottomAngle = EditorGUILayout.FloatField("Spine Angle", mod.BottomAngle); mod.BottomMaxAngle = EditorGUILayout.FloatField("Max Spine Angle", mod.BottomMaxAngle); mod.changespineangle = EditorGUILayout.Toggle("Change Spine Angle", mod.changespineangle); float center = EditorGUILayout.Slider("Turn Center", mod.Turn_CCenter, 0.0f, 1.0f); if (center != mod.Turn_CCenter) { mod.Turn_CCenter = center; update = true; } val = EditorGUILayout.Slider("Turn Size", mod.Turn_CArea, 0.01f, 1.0f); if (val != mod.Turn_CArea) { mod.Turn_CAreaChange(val); } val = EditorGUILayout.FloatField("Turn Max Angle", mod.Turn_maxAngle); if (val != mod.Turn_maxAngle) { mod.Turn_maxAngleChange(val); } val = EditorGUILayout.FloatField("Turn Min Angle", mod.Turn_minAngle); if (val != mod.Turn_minAngle) { mod.Turn_minAngleChange(val); } val = EditorGUILayout.FloatField("Turn Spread", mod.Turn_Spread); if (val != mod.Turn_Spread) { mod.Turn_SpreadChange(val); } val = EditorGUILayout.Slider("Open Origin", mod.Land_CCenter, 0.0f, 1.0f); if (val != mod.Land_CCenter) { mod.Land_CCenterChange(val); } val = EditorGUILayout.Slider("Open Size", mod.Land_CArea, 0.01f, 1.0f); if (val != mod.Land_CArea) { mod.Land_CAreaChange(val); } val = EditorGUILayout.FloatField("Open Max Angle", mod.Land_maxAngle); if (val != mod.Land_maxAngle) { mod.Land_MaxAngleChange(val); } val = EditorGUILayout.FloatField("Open Min Angle", mod.Land_minAngle); if (val != mod.Land_minAngle) { mod.Land_MinAngleChange(val); } val = EditorGUILayout.Slider("Flip Origin", mod.Flex_CCenter, 0.0f, 1.0f); if (val != mod.Flex_CCenter) { mod.Flex_CCenterChange(val); } val = EditorGUILayout.Slider("Flip Size", mod.Flex_CArea, 0.01f, 1.0f); if (val != mod.Flex_CArea) { mod.Flex_CAreaChange(val); } val = EditorGUILayout.FloatField("Flip Max Angle", mod.Flex_MaxAngle); if (val != mod.Flex_MaxAngle) { mod.Flex_MaxAngleChange(val); } bval = EditorGUILayout.Toggle("Flip Random", mod.Flex_Random); if (bval != mod.Flex_Random) { mod.Flex_RandomChange(mod.Flex_RandomDegree, mod.Flex_RandomSeed, bval); } ival = EditorGUILayout.IntField("Flip Random Seed", mod.Flex_RandomSeed); if (ival != mod.Flex_RandomSeed) { mod.Flex_RandomChange(mod.Flex_RandomDegree, ival, bval); } val = EditorGUILayout.FloatField("Flip Random Ang", mod.Flex_RandomDegree); if (val != mod.Flex_RandomDegree) { mod.Flex_RandomChange(val, mod.Flex_RandomSeed, mod.Flex_Random); } EditorGUILayout.EndVertical(); } mod.showmaterials = EditorGUILayout.Foldout(mod.showmaterials, "Pages"); if (mod.showmaterials && mod.pageparams.Count > 0) { if (mod.pageparams.Count > 1) { mod.editpage = EditorGUILayout.IntSlider("Edit Page", mod.editpage, 0, mod.pageparams.Count - 1); //mod.editpage = EditorGUILayout.IntSlider("Edit Page", mod.editpage, 0, mod.NumPages - 1); //mod.MinPageVal(), mod.MaxPageVal()); } if (GUILayout.Button("Add Page")) { mod.pageparams.Add(NewPage(mod.pageparams.Count - 1)); } EditorGUILayout.BeginVertical("box"); if (DisplayPage(mod.pageparams[mod.editpage], mod.editpage)) { updatemesh = true; } EditorGUILayout.EndVertical(); if (GUILayout.Button("Add Page")) { mod.pageparams.Add(NewPage(mod.pageparams.Count - 1)); } } else if (GUILayout.Button("Add Page")) { mod.pageparams.Add(NewPage(mod.pageparams.Count - 1)); } mod.showbackgrounds = EditorGUILayout.Foldout(mod.showbackgrounds, "Texture Backgrounds"); if (mod.showbackgrounds) { EditorGUILayout.BeginVertical("box"); bool noback = EditorGUILayout.Toggle("No Backgrounds", mod.nobackgrounds); if (noback != mod.nobackgrounds) { mod.nobackgrounds = noback; update = true; } Texture2D tex = (Texture2D)EditorGUILayout.ObjectField("Background", mod.background, typeof(Texture2D), false); if (tex != mod.background && CheckTextureReadable(tex)) { if (tex == null) { mod.ClearMadeTextures(); update = true; } mod.background = tex; } tex = (Texture2D)EditorGUILayout.ObjectField("Background Back", mod.background1, typeof(Texture2D), false); if (tex != mod.background1 && CheckTextureReadable(tex)) { if (tex == null) { mod.ClearMadeTextures(); update = true; } mod.background1 = tex; } tex = (Texture2D)EditorGUILayout.ObjectField("Mask", mod.mask, typeof(Texture2D), false); if (tex != mod.mask && CheckTextureReadable(tex)) { if (tex == null) { mod.ClearMadeTextures(); update = true; } mod.mask = tex; } Rect copyarea = EditorGUILayout.RectField("Copy Area", mod.copyarea); if (copyarea != mod.copyarea) { mod.copyarea = copyarea; mod.ClearMadeTextures(); update = true; } copyarea = EditorGUILayout.RectField("Copy Area Back", mod.copyarea1); if (copyarea != mod.copyarea1) { mod.copyarea1 = copyarea; mod.ClearMadeTextures(); update = true; } EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Clear")) { mod.ClearMadeTextures(); updatemesh = true; } if (GUILayout.Button("Make Pages")) { mod.BuildPageTextures(); updatemesh = true; } EditorGUILayout.EndHorizontal(); EditorGUILayout.EndVertical(); } mod.showcover = EditorGUILayout.Foldout(mod.showcover, "Cover Params"); if (mod.showcover) { EditorGUILayout.BeginVertical("box"); mod.frontcover = (Transform)EditorGUILayout.ObjectField("Front Cover", mod.frontcover, typeof(Transform), true); mod.frontang = EditorGUILayout.FloatField("Front Ang", mod.frontang); mod.frontpivot = EditorGUILayout.Vector3Field("Front Pivot", mod.frontpivot); mod.backcover = (Transform)EditorGUILayout.ObjectField("Back Cover", mod.backcover, typeof(Transform), true); mod.backang = EditorGUILayout.FloatField("Back Ang", mod.backang); mod.backpivot = EditorGUILayout.Vector3Field("Back Pivot", mod.backpivot); EditorGUILayout.EndVertical(); } mod.showdynammesh = EditorGUILayout.Foldout(mod.showdynammesh, "Dynam Mesh"); if (mod.showdynammesh) { EditorGUILayout.BeginVertical("box"); bool texton = EditorGUILayout.BeginToggleGroup("Enabled", mod.dynammeshenabled); if (texton != mod.dynammeshenabled) { mod.dynammeshenabled = texton; updatemesh = true; } MegaBookDynamicMesh textobj = (MegaBookDynamicMesh)EditorGUILayout.ObjectField("Text Object", mod.dynamobj, typeof(MegaBookDynamicMesh), true); if (textobj != mod.dynamobj) { mod.dynamobj = textobj; updatemesh = true; } EditorGUILayout.BeginVertical("box"); Vector3 textoffset = EditorGUILayout.Vector3Field("Front Offset", mod.dynamoffset); if (textoffset != mod.dynamoffset) { mod.dynamoffset = textoffset; updatemesh = true; } Vector3 textrot = EditorGUILayout.Vector3Field("Front Rotate", mod.dynamrot); if (textrot != mod.dynamrot) { mod.dynamrot = textrot; updatemesh = true; } Vector3 textscale = EditorGUILayout.Vector3Field("Front Scale", mod.dynamscale); if (textscale != mod.dynamscale) { mod.dynamscale = textscale; updatemesh = true; } EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical("box"); textoffset = EditorGUILayout.Vector3Field("Back Offset", mod.backdynamoffset); if (textoffset != mod.backdynamoffset) { mod.backdynamoffset = textoffset; updatemesh = true; } textrot = EditorGUILayout.Vector3Field("Back Rotate", mod.backdynamrot); if (textrot != mod.backdynamrot) { mod.backdynamrot = textrot; updatemesh = true; } textscale = EditorGUILayout.Vector3Field("Back Scale", mod.backdynamscale); if (textscale != mod.backdynamscale) { mod.backdynamscale = textscale; updatemesh = true; } EditorGUILayout.EndVertical(); EditorGUILayout.EndToggleGroup(); EditorGUILayout.EndVertical(); } if (GUILayout.Button("Rebuild")) { updatemesh = true; mod.rebuild = true; EditorUtility.SetDirty(target); } if (updatemesh) { mod.rebuildmeshes = true; //mod.UpdateSettings(); //mod.Detach(); //mod.BuildPageMeshes(); //mod.Attach(); //mod.UpdateSettings(); } // debug for (int i = 0; i < mod.pages.Count; i++) { mod.pages[i].turnerfromcon = EditorGUILayout.CurveField("Turn", mod.pages[i].turnerfromcon); } //for ( int i = 0; i < mod.pages.Count; i++ ) //{ //mod.pages[i].turnerangcon = EditorGUILayout.CurveField("Ang", mod.pages[i].turnerangcon); //} if (update) { mod.UpdateSettings(); } if (GUI.changed) { //serializedObject.ApplyModifiedProperties(); if (mod.pages.Count > 0) { mod.pages[0].deform = true; } EditorUtility.SetDirty(target); } undoManager.CheckDirty(); }
public override void OnInspectorGUI() { MegaBookBuilder mod = (MegaBookBuilder)target; undoManager.CheckUndo(); EditorGUIUtility.LookLikeControls(); bool update = false; bool updatemesh = false; if (Event.current.type == EventType.ExecuteCommand && Event.current.commandName != null) { if (Event.current.commandName == "UndoRedoPerformed") { mod.rebuild = true; } } mod.page = EditorGUILayout.Slider("Page", mod.page, 0.0f, (float)mod.NumPages); if (GUI.changed) { mod.Flip = mod.page; mod.turnspd = 0.0f; EditorUtility.SetDirty(target); GUI.changed = false; } mod.Snap = EditorGUILayout.Toggle("Snap", mod.Snap); mod.turntime = EditorGUILayout.FloatField("Turn Time", mod.turntime); int ival = EditorGUILayout.IntField("Num Pages", mod.NumPages); if (ival < 1) { ival = 1; } if (ival != mod.NumPages) { mod.NumPages = ival; updatemesh = true; } float val = 0.0f; bool bval = false; mod.showmeshoptions = EditorGUILayout.Foldout(mod.showmeshoptions, "Mesh Options"); if (mod.showmeshoptions) { EditorGUILayout.BeginVertical("box"); val = EditorGUILayout.FloatField("Page Length", mod.pageLength); if (val < 0.0f) { val = 0.0f; } if (val != mod.pageLength) { mod.pageLength = val; updatemesh = true; } val = EditorGUILayout.FloatField("Page Width", mod.pageWidth); if (val < 0.0f) { val = 0.0f; } if (val != mod.pageWidth) { mod.pageWidth = val; updatemesh = true; } val = EditorGUILayout.FloatField("Page Height", mod.pageHeight); if (val < 0.0f) { val = 0.0f; } if (val != mod.pageHeight) { mod.pageHeight = val; updatemesh = true; } ival = EditorGUILayout.IntField("Width Segs", mod.WidthSegs); if (ival != mod.WidthSegs) { mod.WidthSegs = ival; updatemesh = true; } ival = EditorGUILayout.IntField("Length Segs", mod.LengthSegs); if (ival != mod.LengthSegs) { mod.LengthSegs = ival; updatemesh = true; } ival = EditorGUILayout.IntField("Height Segs", mod.HeightSegs); if (ival != mod.HeightSegs) { mod.HeightSegs = ival; updatemesh = true; } bval = EditorGUILayout.Toggle("Spine Edge", mod.spineedge); if (bval != mod.spineedge) { mod.spineedge = bval; updatemesh = true; } bval = EditorGUILayout.Toggle("Page Hole Mesh", mod.useholepage); if (bval != mod.useholepage) { mod.useholepage = bval; updatemesh = true; } ival = EditorGUILayout.IntField("X Hole", mod.xhole); if (ival != mod.xhole) { mod.xhole = ival; updatemesh = true; } ival = EditorGUILayout.IntField("Y Hole", mod.yhole); if (ival != mod.yhole) { mod.yhole = ival; updatemesh = true; } mod.pagesizevariation = EditorGUILayout.Vector3Field("Variation", mod.pagesizevariation); if (GUI.changed) { updatemesh = true; } mod.pagesectioncrv = EditorGUILayout.CurveField("Vertex Dist", mod.pagesectioncrv); if (GUI.changed) { updatemesh = true; } mod.pagemesh = (Mesh)EditorGUILayout.ObjectField("Page Mesh", mod.pagemesh, typeof(Mesh), true); if (GUI.changed) { updatemesh = true; } mod.holemesh = (Mesh)EditorGUILayout.ObjectField("Hole Mesh", mod.holemesh, typeof(Mesh), true); if (GUI.changed) { updatemesh = true; } mod.pageobject = (GameObject)EditorGUILayout.ObjectField("Page Object", mod.pageobject, typeof(GameObject), false); if (GUI.changed) { updatemesh = true; } mod.holeobject = (GameObject)EditorGUILayout.ObjectField("Hole Object", mod.holeobject, typeof(GameObject), false); if (GUI.changed) { updatemesh = true; } mod.frontmat = EditorGUILayout.IntField("Front Mat ID", mod.frontmat); if (GUI.changed) { updatemesh = true; } mod.backmat = EditorGUILayout.IntField("Back Mat ID", mod.backmat); if (GUI.changed) { updatemesh = true; } mod.rotate = EditorGUILayout.Vector3Field("Rotate", mod.rotate); if (GUI.changed) { updatemesh = true; } mod.basematerial = (Material)EditorGUILayout.ObjectField("Front Material", mod.basematerial, typeof(Material), true); if (GUI.changed) { updatemesh = true; } mod.basematerial1 = (Material)EditorGUILayout.ObjectField("Back Material", mod.basematerial1, typeof(Material), true); if (GUI.changed) { updatemesh = true; } mod.basematerial2 = (Material)EditorGUILayout.ObjectField("Edge Material", mod.basematerial2, typeof(Material), true); if (GUI.changed) { updatemesh = true; } val = EditorGUILayout.FloatField("Page Gap", mod.pageGap); if (val != mod.pageGap) { mod.pageGap = val; update = true; } val = EditorGUILayout.Slider("Spine Radius", mod.spineradius, -1.0f, 1.0f); if (val != mod.spineradius) { mod.spineradius = val; update = true; } bval = EditorGUILayout.Toggle("Use Book Thickness", mod.usebookthickness); if (bval != mod.usebookthickness) { mod.usebookthickness = bval; update = true; } val = EditorGUILayout.FloatField("Book Thickness", mod.bookthickness); if (val != mod.bookthickness) { mod.bookthickness = val; update = true; } bval = EditorGUILayout.Toggle("Page Colliders", mod.updatecollider); if (bval != mod.updatecollider) { mod.updatecollider = bval; updatemesh = true; } EditorGUILayout.EndVertical(); } mod.showflipoptions = EditorGUILayout.Foldout(mod.showflipoptions, "Page Turn Options"); if (mod.showflipoptions) { EditorGUILayout.BeginVertical("box"); mod.BottomAngle = EditorGUILayout.FloatField("Spine Angle", mod.BottomAngle); mod.BottomMaxAngle = EditorGUILayout.FloatField("Max Spine Angle", mod.BottomMaxAngle); mod.changespineangle = EditorGUILayout.Toggle("Change Spine Angle", mod.changespineangle); float center = EditorGUILayout.Slider("Turn Center", mod.Turn_CCenter, 0.0f, 1.0f); if (center != mod.Turn_CCenter) { mod.Turn_CCenter = center; update = true; } val = EditorGUILayout.Slider("Turn Size", mod.Turn_CArea, 0.01f, 1.0f); if (val != mod.Turn_CArea) { mod.Turn_CAreaChange(val); } val = EditorGUILayout.FloatField("Turn Max Angle", mod.Turn_maxAngle); if (val != mod.Turn_maxAngle) { mod.Turn_maxAngleChange(val); } val = EditorGUILayout.FloatField("Turn Min Angle", mod.Turn_minAngle); if (val != mod.Turn_minAngle) { mod.Turn_minAngleChange(val); } val = EditorGUILayout.FloatField("Turn Spread", mod.Turn_Spread); if (val != mod.Turn_Spread) { mod.Turn_SpreadChange(val); } val = EditorGUILayout.Slider("Open Origin", mod.Land_CCenter, 0.0f, 1.0f); if (val != mod.Land_CCenter) { mod.Land_CCenterChange(val); } val = EditorGUILayout.Slider("Open Size", mod.Land_CArea, 0.01f, 1.0f); if (val != mod.Land_CArea) { mod.Land_CAreaChange(val); } val = EditorGUILayout.FloatField("Open Max Angle", mod.Land_maxAngle); if (val != mod.Land_maxAngle) { mod.Land_MaxAngleChange(val); } val = EditorGUILayout.FloatField("Open Min Angle", mod.Land_minAngle); if (val != mod.Land_minAngle) { mod.Land_MinAngleChange(val); } val = EditorGUILayout.Slider("Flip Origin", mod.Flex_CCenter, 0.0f, 1.0f); if (val != mod.Flex_CCenter) { mod.Flex_CCenterChange(val); } val = EditorGUILayout.Slider("Flip Size", mod.Flex_CArea, 0.01f, 1.0f); if (val != mod.Flex_CArea) { mod.Flex_CAreaChange(val); } val = EditorGUILayout.FloatField("Flip Max Angle", mod.Flex_MaxAngle); if (val != mod.Flex_MaxAngle) { mod.Flex_MaxAngleChange(val); } bval = EditorGUILayout.Toggle("Flip Random", mod.Flex_Random); if (bval != mod.Flex_Random) { mod.Flex_RandomChange(mod.Flex_RandomDegree, mod.Flex_RandomSeed, bval); } ival = EditorGUILayout.IntField("Flip Random Seed", mod.Flex_RandomSeed); if (ival != mod.Flex_RandomSeed) { mod.Flex_RandomChange(mod.Flex_RandomDegree, ival, bval); } val = EditorGUILayout.FloatField("Flip Random Ang", mod.Flex_RandomDegree); if (val != mod.Flex_RandomDegree) { mod.Flex_RandomChange(val, mod.Flex_RandomSeed, mod.Flex_Random); } EditorGUILayout.EndVertical(); } mod.showmaterials = EditorGUILayout.Foldout(mod.showmaterials, "Pages"); if (mod.showmaterials) { mod.editpage = EditorGUILayout.IntSlider("Edit Page", mod.editpage, 0, mod.pageparams.Count - 1); if (GUILayout.Button("Add Page")) { mod.pageparams.Add(NewPage(mod.pageparams.Count - 1)); } EditorGUILayout.BeginVertical("box"); if (DisplayPage(mod.pageparams[mod.editpage], mod.editpage)) { updatemesh = true; } EditorGUILayout.EndVertical(); if (GUILayout.Button("Add Page")) { mod.pageparams.Add(NewPage(mod.pageparams.Count - 1)); } } mod.showbackgrounds = EditorGUILayout.Foldout(mod.showbackgrounds, "Texture Backgrounds"); if (mod.showbackgrounds) { EditorGUILayout.BeginVertical("box"); bool noback = EditorGUILayout.Toggle("No Backgrounds", mod.nobackgrounds); if (noback != mod.nobackgrounds) { mod.nobackgrounds = noback; update = true; } Texture2D tex = (Texture2D)EditorGUILayout.ObjectField("Background", mod.background, typeof(Texture2D), false); if (tex != mod.background && CheckTextureReadable(tex)) { if (tex == null) { mod.ClearMadeTextures(); update = true; } mod.background = tex; } tex = (Texture2D)EditorGUILayout.ObjectField("Background Back", mod.background1, typeof(Texture2D), false); if (tex != mod.background1 && CheckTextureReadable(tex)) { if (tex == null) { mod.ClearMadeTextures(); update = true; } mod.background1 = tex; } tex = (Texture2D)EditorGUILayout.ObjectField("Mask", mod.mask, typeof(Texture2D), false); if (tex != mod.mask && CheckTextureReadable(tex)) { if (tex == null) { mod.ClearMadeTextures(); update = true; } mod.mask = tex; } Rect copyarea = EditorGUILayout.RectField("Copy Area", mod.copyarea); if (copyarea != mod.copyarea) { mod.copyarea = copyarea; mod.ClearMadeTextures(); update = true; } copyarea = EditorGUILayout.RectField("Copy Area Back", mod.copyarea1); if (copyarea != mod.copyarea1) { mod.copyarea1 = copyarea; mod.ClearMadeTextures(); update = true; } EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Clear")) { mod.ClearMadeTextures(); updatemesh = true; } if (GUILayout.Button("Make Pages")) { mod.BuildPageTextures(); updatemesh = true; } EditorGUILayout.EndHorizontal(); EditorGUILayout.EndVertical(); } if (updatemesh) { mod.UpdateSettings(); mod.Detach(); mod.BuildPageMeshes(); mod.Attach(); mod.UpdateSettings(); } if (update) { mod.UpdateSettings(); } if (GUILayout.Button("Rebuild")) { mod.rebuild = true; EditorUtility.SetDirty(target); } if (GUI.changed) { if (mod.pages.Count > 0) { mod.pages[0].deform = true; } EditorUtility.SetDirty(target); } undoManager.CheckDirty(); }