public override void RenderGUI(Rect area, bool isEditable) { GUILayout.BeginArea(area); RenderTitle(isEditable, true, false); scroller_ = EditorGUILayout.BeginScrollView(scroller_); EditorGUI.BeginDisabledGroup(!isEditable); RenderFieldObjects("Attentive Nodes", FieldController, true, false, CNFieldWindow.Type.extended); EditorGUILayout.Space(); CRGUIUtils.DrawSeparator(); CRGUIUtils.Splitter(); EditorGUILayout.Space(); DrawTimer(); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUI.EndDisabledGroup(); EditorGUILayout.EndScrollView(); GUILayout.EndArea(); }
public override void RenderGUI(Rect area, bool isEditable) { GUILayout.BeginArea(area); RenderTitle(isEditable, false, false); EditorGUI.BeginDisabledGroup(!isEditable); RenderFieldObjects("Objects", FieldController, true, true, CNFieldWindow.Type.normal); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Weld", GUILayout.Height(30f))) { Weld(); } if (GUILayout.Button("Save asset...", GUILayout.Height(30f), GUILayout.Width(100f))) { SaveWeldResult(); } EditorGUILayout.EndHorizontal(); EditorGUI.EndDisabledGroup(); CRGUIUtils.DrawSeparator(); scroller_ = EditorGUILayout.BeginScrollView(scroller_); EditorGUILayout.Space(); EditorGUILayout.Space(); float originalLabelwidth = EditorGUIUtility.labelWidth; EditorGUIUtility.labelWidth = 200f; CRGUIUtils.Splitter(); GUIStyle centerLabel = new GUIStyle(EditorStyles.largeLabel); centerLabel.alignment = TextAnchor.MiddleCenter; centerLabel.fontStyle = FontStyle.Bold; EditorGUILayout.LabelField("Output", centerLabel); EditorGUI.BeginDisabledGroup(Data.WeldGameObject == null); EditorGUILayout.Space(); if (GUILayout.Button("Select welded object")) { Selection.activeGameObject = Data.WeldGameObject; } EditorGUILayout.Space(); EditorGUI.EndDisabledGroup(); EditorGUIUtility.labelWidth = originalLabelwidth; EditorGUILayout.EndScrollView(); GUILayout.EndArea(); } // RenderGUI
public override void RenderGUI(Rect area, bool isEditable) { GUILayout.BeginArea(area); RenderTitle(isEditable, true, false); EditorGUI.BeginDisabledGroup(!isEditable); RenderFieldObjects("Bodies", FieldController, true, true, CNFieldWindow.Type.extended); EditorGUILayout.Space(); EditorGUILayout.Space(); CRGUIUtils.DrawSeparator(); CRGUIUtils.Splitter(); EditorGUILayout.Space(); EditorGUILayout.Space(); bool currentMode = EditorGUIUtility.wideMode; EditorGUIUtility.wideMode = true; DrawTimer(); EditorGUILayout.Space(); DrawGravity(); EditorGUIUtility.wideMode = currentMode; EditorGUILayout.Space(); EditorGUI.EndDisabledGroup(); GUILayout.EndArea(); }
public override void RenderGUI(Rect area, bool isEditable) { GUILayout.BeginArea(area); RenderTitle(isEditable); EditorGUILayout.Space(); float originalLabelwidth = EditorGUIUtility.labelWidth; EditorGUIUtility.labelWidth = 100f; EditorGUI.BeginDisabledGroup(!isEditable); EditorGUI.BeginChangeCheck(); selectedScopeIdx_ = EditorGUILayout.Popup("Effect Scope", selectedScopeIdx_, scopeStrings); if (EditorGUI.EndChangeCheck()) { ChangeScope((CNGroup.CARONTEFX_SCOPE)selectedScopeIdx_); } EditorGUI.EndDisabledGroup(); EditorGUILayout.Space(); EditorGUILayout.Space(); if (GUILayout.Button(new GUIContent("Select scope GameObjects"), GUILayout.Height(30f))) { SceneSelection(); } EditorGUIUtility.labelWidth = originalLabelwidth; CRGUIUtils.DrawSeparator(); CRGUIUtils.Splitter(); DrawEffectGUIWindow(isEditable); GUILayout.EndArea(); }
//----------------------------------------------------------------------------------- public override void RenderGUI(Rect area, bool isEditable) { GUILayout.BeginArea(area); RenderTitle(isEditable); EditorGUI.BeginDisabledGroup(!isEditable); { RenderFieldObjects("ObjectsA", FieldControllerA, true, true, CNFieldWindow.Type.extended); RenderFieldObjects("ObjectsB", FieldControllerB, true, true, CNFieldWindow.Type.extended); EditorGUILayout.Space(); EditorGUILayout.Space(); if (GUILayout.Button(Data.NeedsUpdate ? "Create/Recreate(*)" : "Create/Recreate", GUILayout.Height(30f))) { RecreateEntities(); } } EditorGUI.EndDisabledGroup(); CRGUIUtils.DrawSeparator(); CRGUIUtils.Splitter(); scroller_ = EditorGUILayout.BeginScrollView(scroller_); float originalLabelwidth = EditorGUIUtility.labelWidth; EditorGUIUtility.labelWidth = 200f; bool currentMode = EditorGUIUtility.wideMode; EditorGUIUtility.wideMode = true; EditorGUI.BeginDisabledGroup(!isEditable); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUI.BeginChangeCheck(); RenderCreationParams(); if (EditorGUI.EndChangeCheck() && eManager.IsServosCreated(Data)) { DestroyEntities(); } CRGUIUtils.Splitter(); EditorGUILayout.Space(); RenderEditParams(); EditorGUIUtility.labelWidth = originalLabelwidth; EditorGUIUtility.wideMode = currentMode; EditorGUI.EndDisabledGroup(); EditorGUILayout.EndScrollView(); GUILayout.EndArea(); } // RenderGUI
//---------------------------------------------------------------------------------- protected override void RenderFieldsBody(bool isEditable) { EditorGUILayout.Space(); EditorGUILayout.Space(); CRGUIUtils.DrawSeparator(); CRGUIUtils.Splitter(); float originalLabelWidth = EditorGUIUtility.labelWidth; EditorGUIUtility.labelWidth = label_width; scroller_ = EditorGUILayout.BeginScrollView(scroller_); EditorGUI.BeginDisabledGroup(!isEditable); EditorGUILayout.Space(); DrawDoCollide(); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.Space(); DrawAnimationClip(); EditorGUILayout.Space(); EditorGUILayout.Space(); DrawTimeStart(); GUILayout.BeginHorizontal(); DrawTimeLength(); DrawTimeLengthReset(); GUILayout.EndHorizontal(); EditorGUILayout.Space(); CRGUIUtils.Splitter(); EditorGUILayout.Space(); EditorGUILayout.Space(); DrawRestitution(); DrawFrictionKinetic(); GUILayout.BeginHorizontal(); EditorGUI.BeginDisabledGroup(Data.FromKinetic); DrawFrictionStatic(); EditorGUI.EndDisabledGroup(); DrawFrictionStaticFromKinetic(); GUILayout.EndHorizontal(); EditorGUIUtility.labelWidth = originalLabelWidth; EditorGUI.EndDisabledGroup(); EditorGUILayout.EndScrollView(); }
//---------------------------------------------------------------------------------- public override void RenderGUI(Rect area, bool isEditable) { GUILayout.BeginArea(area); RenderTitle(isEditable); EditorGUI.BeginDisabledGroup(!isEditable); RenderFieldObjects("Scope", FieldController, true, true, CNFieldWindow.Type.normal); EditorGUI.EndDisabledGroup(); EditorGUILayout.Space(); EditorGUILayout.Space(); CRGUIUtils.DrawSeparator(); CRGUIUtils.Splitter(); EditorGUILayout.Space(); GUILayout.EndArea(); }
//---------------------------------------------------------------------------------- public override void RenderGUI(Rect area, bool isEditable) { GUILayout.BeginArea(area); RenderTitle(isEditable, true, false); EditorGUI.BeginDisabledGroup(!isEditable); RenderFieldObjects("Bodies", FieldController, true, true, CNFieldWindow.Type.extended); EditorGUILayout.Space(); EditorGUILayout.Space(); CRGUIUtils.DrawSeparator(); CRGUIUtils.Splitter(); scroller_ = EditorGUILayout.BeginScrollView(scroller_); EditorGUILayout.Space(); EditorGUILayout.Space(); Data.Timer = EditorGUILayout.FloatField("Timer (s)", Data.Timer); Data.TimeDuration = EditorGUILayout.FloatField("Duration (s)", Data.TimeDuration); EditorGUILayout.Space(); Data.Multiplier_r = EditorGUILayout.FloatField("Position multiplier", Data.Multiplier_r); Data.Multiplier_q = EditorGUILayout.FloatField("Rotation multiplier", Data.Multiplier_q); EditorGUILayout.Space(); EditorGUILayout.Space(); RenderFieldObjects("Target objects", FieldControllerAimGameObjects, true, false, CNFieldWindow.Type.normal); EditorGUI.EndDisabledGroup(); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.EndScrollView(); GUILayout.EndArea(); }
public override void RenderGUI(Rect area, bool isEditable) { GUILayout.BeginArea(area); RenderTitle(isEditable, false, false); EditorGUI.BeginDisabledGroup(!isEditable); RenderFieldObjects("Objects", FieldController, true, true, CNFieldWindow.Type.normal); EditorGUILayout.Space(); EditorGUILayout.Space(); if (GUILayout.Button("Select", GUILayout.Height(30f))) { ClassifySelection(); } EditorGUI.EndDisabledGroup(); CRGUIUtils.DrawSeparator(); scroller_ = EditorGUILayout.BeginScrollView(scroller_); EditorGUILayout.Space(); EditorGUILayout.Space(); float originalLabelwidth = EditorGUIUtility.labelWidth; EditorGUIUtility.labelWidth = 200f; DrawSelectorGO(); DrawSelectionMode(); DrawComplementarySelection(); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUIUtility.labelWidth = originalLabelwidth; EditorGUILayout.EndScrollView(); GUILayout.EndArea(); } // RenderGUI
//---------------------------------------------------------------------------------- public override void RenderGUI(Rect area, bool isEditable) { GUILayout.BeginArea(area); RenderTitle(isEditable, true, false); EditorGUI.BeginDisabledGroup(!isEditable); RenderFieldObjects("Bodies", FieldController, true, true, CNFieldWindow.Type.extended); RenderFieldObjects("Locators", FieldControllerLocators, true, true, CNFieldWindow.Type.normal); EditorGUILayout.Space(); EditorGUILayout.Space(); CRGUIUtils.DrawSeparator(); CRGUIUtils.Splitter(); EditorGUILayout.Space(); EditorGUILayout.Space(); bool currentMode = EditorGUIUtility.wideMode; EditorGUIUtility.wideMode = true; DrawTimer(); EditorGUILayout.Space(); DrawForce(); DrawSpeedLimit(); EditorGUILayout.Space(); DrawForceDeltaMax(); DrawAngleDeltaMax(); EditorGUILayout.Space(); DrawPeriodTime(); DrawPeriodSpace(); EditorGUIUtility.wideMode = currentMode; EditorGUILayout.Space(); EditorGUI.EndDisabledGroup(); GUILayout.EndArea(); }
//----------------------------------------------------------------------------------- public override void RenderGUI(Rect area, bool isEditable) { GUILayout.BeginArea(area); RenderTitle(isEditable, true, true, true); EditorGUI.BeginDisabledGroup(!isEditable); { RenderFieldObjects("ObjectsA", FieldControllerA, true, true, CNFieldWindow.Type.extended); RenderFieldObjects("ObjectsB", FieldControllerB, true, true, CNFieldWindow.Type.extended); EditorGUILayout.Space(); EditorGUILayout.Space(); if (GUILayout.Button(Data.NeedsUpdate ? "Create/Recreate(*)" : "Create/Recreate", GUILayout.Height(30f))) { RecreateEntities(); } } EditorGUI.EndDisabledGroup(); CRGUIUtils.DrawSeparator(); CRGUIUtils.Splitter(); scroller_ = EditorGUILayout.BeginScrollView(scroller_); float originalLabelwidth = EditorGUIUtility.labelWidth; EditorGUIUtility.labelWidth = 200f; EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUI.BeginDisabledGroup(!isEditable); { EditorGUI.BeginChangeCheck(); { RenderCreationParams(); } if (EditorGUI.EndChangeCheck() && eManager.IsMultiJointCreated(Data)) { DestroyEntities(); } EditorGUILayout.Space(); CRGUIUtils.Splitter(); EditorGUILayout.Space(); //FORCES EditorGUI.BeginChangeCheck(); EditorGUILayout.BeginHorizontal(); EditorGUI.BeginDisabledGroup(MaximumForce); DrawForceMax(); EditorGUI.EndDisabledGroup(); DrawMaximumForce(); EditorGUILayout.EndHorizontal(); EditorGUI.BeginDisabledGroup(MaximumForce); DrawForceMaxRand(); DrawForceRange(); DrawForceProfile(); EditorGUI.EndDisabledGroup(); } EditorGUI.EndDisabledGroup(); CRGUIUtils.Splitter(); EditorGUILayout.Space(); //BREAK EditorGUILayout.BeginHorizontal(); Data.BreakFoldout = EditorGUILayout.Foldout(Data.BreakFoldout, "Break if distance exceeded"); EditorGUI.BeginDisabledGroup(!isEditable); { GUILayout.Space(145f); DrawBreakIfDistanceExceeded(); GUILayout.FlexibleSpace(); EditorGUILayout.EndHorizontal(); { if (Data.BreakFoldout) { EditorGUILayout.Space(); EditorGUI.BeginDisabledGroup(!Data.BreakIfDistExcedeed); DrawDistanceForBreak(); DrawDistanceForBreakRand(); EditorGUI.EndDisabledGroup(); DrawEnableCollisionIfBreak(); } } } EditorGUI.EndDisabledGroup(); CRGUIUtils.Splitter(); EditorGUILayout.Space(); //PLASTICITY EditorGUILayout.BeginHorizontal(); Data.PlasticityFoldout = EditorGUILayout.Foldout(Data.PlasticityFoldout, "Plasticity"); EditorGUI.BeginDisabledGroup(!isEditable); { GUILayout.Space(145f); DrawPlasticity(); GUILayout.FlexibleSpace(); EditorGUILayout.EndHorizontal(); if (Data.PlasticityFoldout) { EditorGUILayout.Space(); EditorGUI.BeginDisabledGroup(!Data.Plasticity); DrawDistanceForPlasticity(); DrawDistanceForPlasticityRand(); DrawPlasticityRateAcquired(); EditorGUI.EndDisabledGroup(); } } EditorGUI.EndDisabledGroup(); CRGUIUtils.Splitter(); EditorGUIUtility.labelWidth = originalLabelwidth; EditorGUILayout.EndScrollView(); GUILayout.EndArea(); } // RenderGUI
//----------------------------------------------------------------------------------- protected override void RenderFieldsBody(bool isEditable) { EditorGUILayout.Space(); EditorGUILayout.Space(); CRGUIUtils.DrawSeparator(); CRGUIUtils.Splitter(); float originalLabelWidth = EditorGUIUtility.labelWidth; EditorGUIUtility.labelWidth = label_width; scroller_ = EditorGUILayout.BeginScrollView(scroller_); EditorGUI.BeginDisabledGroup(!isEditable); EditorGUILayout.Space(); DrawDoCollide(); EditorGUILayout.Space(); EditorGUI.BeginDisabledGroup(!Data.IsFiniteMass); DrawGUIMassOptions(); EditorGUI.EndDisabledGroup(); GUILayout.Space(simple_space); DrawRestitution(); DrawFrictionKinetic(); GUILayout.BeginHorizontal(); EditorGUI.BeginDisabledGroup(Data.FromKinetic); DrawFrictionStatic(); EditorGUI.EndDisabledGroup(); DrawFrictionStaticFromKinetic(); GUILayout.EndHorizontal(); EditorGUI.BeginDisabledGroup(!Data.IsFiniteMass); GUILayout.Space(simple_space); DrawDampingPerSecondWorld(); GUILayout.Space(simple_space); bool currentMode = EditorGUIUtility.wideMode; EditorGUIUtility.wideMode = true; EditorGUI.EndDisabledGroup(); DrawLinearVelocity(); DrawAngularVelocity(); EditorGUILayout.Space(); CRGUIUtils.Splitter(); EditorGUILayout.Space(); DrawExplosionOpacity(); EditorGUI.BeginDisabledGroup(!Data.IsFiniteMass); DrawExplosionResponsiveness(); EditorGUI.EndDisabledGroup(); EditorGUIUtility.labelWidth = originalLabelWidth; EditorGUIUtility.wideMode = currentMode; EditorGUILayout.Space(); EditorGUI.EndDisabledGroup(); EditorGUILayout.EndScrollView(); }
public override void RenderGUI(Rect area, bool isEditable) { GUILayout.BeginArea(area); RenderTitle(isEditable, false, false); EditorGUI.BeginDisabledGroup(!isEditable); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Create helper mesh", GUILayout.Height(30f))) { CreateHelperMesh(); } if (GUILayout.Button("Save asset...", GUILayout.Height(30f), GUILayout.Width(100f))) { SaveAssets(); } EditorGUILayout.EndHorizontal(); EditorGUI.EndDisabledGroup(); CRGUIUtils.DrawSeparator(); scroller_ = EditorGUILayout.BeginScrollView(scroller_); EditorGUILayout.Space(); EditorGUILayout.Space(); float originalLabelwidth = EditorGUIUtility.labelWidth; EditorGUIUtility.labelWidth = 200f; DrawRandomSeed(); DrawResolution(); DrawNBumps(); DrawRadiusMin(); DrawRadiusMax(); CRGUIUtils.Splitter(); GUIStyle centerLabel = new GUIStyle(EditorStyles.largeLabel); centerLabel.alignment = TextAnchor.MiddleCenter; centerLabel.fontStyle = FontStyle.Bold; EditorGUILayout.LabelField("Output", centerLabel); EditorGUI.BeginDisabledGroup(Data.HelperGO == null); EditorGUILayout.Space(); if (GUILayout.Button("Select helper object")) { Selection.activeGameObject = Data.HelperGO; } EditorGUILayout.Space(); EditorGUI.EndDisabledGroup(); EditorGUIUtility.labelWidth = originalLabelwidth; EditorGUILayout.EndScrollView(); GUILayout.EndArea(); } // RenderGUI
public override void RenderGUI(Rect area, bool isEditable) { GUILayout.BeginArea(area); RenderTitle(isEditable, false, false); EditorGUI.BeginDisabledGroup(!isEditable); RenderFieldObjects("Objects", FieldController, true, true, CNFieldWindow.Type.normal); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Chop", GUILayout.Height(30f))) { Chop(); } if (GUILayout.Button("Save assets..", GUILayout.Height(30f), GUILayout.Width(100f))) { SaveChopResult(); } EditorGUILayout.EndHorizontal(); EditorGUI.EndDisabledGroup(); CRGUIUtils.DrawSeparator(); CRGUIUtils.Splitter(); tabIndex_ = GUILayout.SelectionGrid(tabIndex_, tabNames_, 2); CRGUIUtils.Splitter(); scroller_ = EditorGUILayout.BeginScrollView(scroller_); if (tabIndex_ == 1) { EditorGUILayout.LabelField("Last chop input objects " + Data.InputObjects); EditorGUILayout.LabelField("Last chop input vertices: " + Data.InputVertices); EditorGUILayout.LabelField("Last chop input triangles: " + Data.InputTriangles); EditorGUILayout.Space(); EditorGUILayout.LabelField("Last chop output pieces: " + Data.OutputPieces); EditorGUILayout.LabelField("Last chop output vertices: " + Data.OutputVertices); EditorGUILayout.LabelField("Last chop output triangles: " + Data.OutputTriangles); } else { EditorGUI.BeginDisabledGroup(!isEditable); float originalLabelwidth = EditorGUIUtility.labelWidth; EditorGUIUtility.labelWidth = 200f; EditorGUILayout.Space(); switch (Data.ChopMode) { case CNFracture.CHOP_MODE.VORONOI_UNIFORM: DrawGUIUniform(); break; case CNFracture.CHOP_MODE.VORONOI_BY_GEOMETRY: DrawGUIGeometry(); break; case CNFracture.CHOP_MODE.VORONOI_RADIAL: DrawGUIRadial(); break; } EditorGUILayout.Space(); CRGUIUtils.Splitter(); EditorGUILayout.Space(); DrawCropGeometry(); DrawCropMode(); DrawWeldInOne(); CRGUIUtils.Splitter(); GUIStyle centerLabel = new GUIStyle(EditorStyles.largeLabel); centerLabel.alignment = TextAnchor.MiddleCenter; centerLabel.fontStyle = FontStyle.Bold; EditorGUILayout.LabelField("Output", centerLabel); EditorGUI.BeginDisabledGroup(Data.GameObjectChoppedRoot == null); EditorGUI.BeginChangeCheck(); EditorGUILayout.Space(); if (GUILayout.Button("Select pieces")) { Selection.activeGameObject = Data.GameObjectChoppedRoot; } DrawPushRate(); DrawPushMultiplier(); ValidateState(); EditorGUI.EndDisabledGroup(); EditorGUIUtility.labelWidth = originalLabelwidth; EditorGUI.EndDisabledGroup(); } EditorGUILayout.EndScrollView(); GUILayout.EndArea(); }
void OnGUI() { Rect nodesArea = new Rect(5, 5, width - 10, ((height - 10) * 0.70f)); Rect nodesAreaBox = new Rect(nodesArea.xMin, nodesArea.yMin, nodesArea.width + 1, nodesArea.height + 1); GUI.Box(nodesAreaBox, ""); GUILayout.BeginArea(nodesArea); GUILayout.BeginHorizontal(); GUIStyle styleTitle = new GUIStyle(GUI.skin.label); styleTitle.fontStyle = FontStyle.Bold; GUILayout.Label("Nodes to bake:", styleTitle); GUILayout.EndHorizontal(); CRGUIUtils.DrawSeparator(); GUILayout.BeginHorizontal(); int bodyNodeCount = listBodyNode_.Count; EditorGUILayout.BeginHorizontal(); DrawToggleMixed(bodyNodeCount); Rect rect = GUILayoutUtility.GetLastRect(); GUILayout.Space(65f); EditorGUILayout.EndHorizontal(); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); Rect boxRect = new Rect(nodesAreaBox.xMin - 5f, rect.yMax, nodesAreaBox.width, (nodesAreaBox.yMax - rect.yMax) + 1f); GUI.Box(boxRect, ""); scroller_ = GUILayout.BeginScrollView(scroller_); for (int i = 0; i < bodyNodeCount; i++) { CNBody bodyNode = listBodyNode_[i]; string name = bodyNode.Name; bitArrNeedsBaking_[i] = EditorGUILayout.ToggleLeft(name, bitArrNeedsBaking_[i], GUILayout.Width(250f)); } EditorGUILayout.EndScrollView(); GUILayout.EndArea(); GUILayout.FlexibleSpace(); Rect optionsArea = new Rect(5f, nodesArea.yMax + 15f, width - 10f, ((height - 10f) * 0.30f)); GUILayout.BeginArea(optionsArea); EditorGUILayout.Space(); EditorGUILayout.Space(); GUILayout.BeginHorizontal(); simulationBaker_.combineMeshesInFrame_ = EditorGUILayout.Toggle("Combine meshes", simulationBaker_.combineMeshesInFrame_); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); simulationBaker_.bakeObjectName_ = EditorGUILayout.TextField("Bake object name", simulationBaker_.bakeObjectName_); GUILayout.EndHorizontal(); EditorGUILayout.Space(); EditorGUILayout.Space(); if (GUILayout.Button("Bake!")) { EditorApplication.delayCall += () => { simulationBaker_.BakeCurrentFrame(); Close(); }; } GUILayout.EndArea(); }
void OnGUI() { Rect nodesArea = new Rect(5, 5, width - 10, ((height - 10) / 2)); Rect nodesAreaBox = new Rect(nodesArea.xMin, nodesArea.yMin, nodesArea.width + 1, nodesArea.height + 1); GUI.Box(nodesAreaBox, ""); GUILayout.BeginArea(nodesArea); GUILayout.BeginHorizontal(); GUIStyle styleTitle = new GUIStyle(GUI.skin.label); styleTitle.fontStyle = FontStyle.Bold; GUILayout.Label("Nodes to bake:", styleTitle); GUILayout.EndHorizontal(); CRGUIUtils.DrawSeparator(); GUILayout.BeginHorizontal(); int bodyNodeCount = listBodyNode_.Count; EditorGUILayout.BeginHorizontal(); DrawToggleMixed(bodyNodeCount); Rect rect = GUILayoutUtility.GetLastRect(); GUILayout.Space(65f); EditorGUILayout.LabelField("Collapse"); EditorGUILayout.EndHorizontal(); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); Rect boxRect = new Rect(nodesAreaBox.xMin - 5, rect.yMax, nodesAreaBox.width - 70f, nodesAreaBox.yMax - rect.yMax); Rect collapseRect = new Rect(boxRect.xMax, boxRect.yMin, 70f, boxRect.height); GUI.Box(boxRect, ""); GUI.Box(collapseRect, ""); scroller_ = GUILayout.BeginScrollView(scroller_); for (int i = 0; i < bodyNodeCount; i++) { GUILayout.BeginHorizontal(); CNBody bodyNode = listBodyNode_[i]; string name = bodyNode.Name; bitArrNeedsBaking_[i] = EditorGUILayout.ToggleLeft(name, bitArrNeedsBaking_[i], GUILayout.Width(250f)); GUILayout.Space(40f); bool isRigid = bodyNode is CNRigidbody; bool isAnimated = bodyNode is CNAnimatedbody; if (isRigid && !isAnimated) { bitArrNeedsCollapsing_[i] = EditorGUILayout.Toggle(bitArrNeedsCollapsing_[i]); } GUILayout.EndHorizontal(); } EditorGUILayout.EndScrollView(); GUILayout.EndArea(); GUILayout.FlexibleSpace(); Rect optionsArea = new Rect(5, nodesArea.yMax, width - 10, (height - 10) / 2); GUILayout.BeginArea(optionsArea); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.LabelField("Frame Start : " + StartFrame); EditorGUILayout.LabelField("Frame End : " + EndFrame); float start = StartFrame; float end = EndFrame; EditorGUILayout.MinMaxSlider(new GUIContent("Frames:"), ref start, ref end, 0, MaxFrames); SetStartEndFrames((int)start, (int)end); EditorGUILayout.Space(); GUILayout.BeginHorizontal(); simulationBaker_.sbCompression_ = EditorGUILayout.Toggle("Vertex compression", simulationBaker_.sbCompression_); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); simulationBaker_.sbTangents_ = EditorGUILayout.Toggle("Save tangents", simulationBaker_.sbTangents_); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); simulationBaker_.bakeEvents_ = EditorGUILayout.Toggle("Save events", simulationBaker_.bakeEvents_); GUILayout.EndHorizontal(); EditorGUILayout.Space(); GUILayout.BeginHorizontal(); simulationBaker_.animationName_ = EditorGUILayout.TextField("Animation name", simulationBaker_.animationName_); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); simulationBaker_.bakeObjectName_ = EditorGUILayout.TextField("Root gameobject name", simulationBaker_.bakeObjectName_); GUILayout.EndHorizontal(); EditorGUILayout.Space(); EditorGUILayout.Space(); if (GUILayout.Button("Bake!")) { EditorApplication.delayCall += () => { simulationBaker_.BakeSimulationAsAnim(); Close(); }; } GUILayout.BeginHorizontal(); GUILayout.EndHorizontal(); GUILayout.EndArea(); }
//----------------------------------------------------------------------------------- protected override void RenderFieldsBody(bool isEditable) { EditorGUILayout.Space(); EditorGUILayout.Space(); CRGUIUtils.DrawSeparator(); CRGUIUtils.Splitter(); scroller_ = EditorGUILayout.BeginScrollView(scroller_); EditorGUILayout.Space(); float originalLabelWidth = EditorGUIUtility.labelWidth; EditorGUIUtility.labelWidth = 180f; EditorGUI.BeginDisabledGroup(!isEditable); { DrawDoCollide(); DrawDoAutocollide(); EditorGUILayout.Space(); DrawGUIMassOptions(); GUILayout.Space(simple_space); DrawResolution(); GUILayout.Space(simple_space); DrawLengthStiffness(); DrawVolumeStiffness(); GUILayout.Space(simple_space); DrawDampingPerSecondCM(); GUILayout.Space(simple_space); CRGUIUtils.Splitter(); EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); DrawPlasticityFoldout(); EditorGUI.BeginDisabledGroup(!isEditable); { DrawPlasticity(); EditorGUILayout.EndHorizontal(); if (Data.PlasticityFoldout) { EditorGUILayout.Space(); EditorGUI.BeginDisabledGroup(!Data.Plasticity); DrawThreshold(); DrawAcquired(); DrawCompressionLimit(); DrawExpansionLimit(); EditorGUI.EndDisabledGroup(); } } EditorGUI.EndDisabledGroup(); CRGUIUtils.Splitter(); GUILayout.Space(simple_space); DrawRestitution(); DrawFrictionKinetic(); GUILayout.BeginHorizontal(); EditorGUI.BeginDisabledGroup(Data.FromKinetic); DrawFrictionStatic(); EditorGUI.EndDisabledGroup(); DrawFrictionStaticFromKinetic(); GUILayout.EndHorizontal(); GUILayout.Space(simple_space); DrawDampingPerSecondWorld(); GUILayout.Space(simple_space); bool currentMode = EditorGUIUtility.wideMode; EditorGUIUtility.wideMode = true; DrawLinearVelocity(); DrawAngularVelocity(); EditorGUIUtility.wideMode = currentMode; } EditorGUI.EndDisabledGroup(); EditorGUILayout.Space(); CRGUIUtils.Splitter(); EditorGUILayout.Space(); EditorGUI.BeginDisabledGroup(!isEditable); { DrawExplosionOpacity(); DrawExplosionResponsiveness(); } EditorGUI.EndDisabledGroup(); EditorGUIUtility.labelWidth = originalLabelWidth; EditorGUILayout.Space(); EditorGUILayout.EndScrollView(); }
public override void RenderGUI(Rect area, bool isEditable) { GUILayout.BeginArea(area); RenderTitle(isEditable, true, false); EditorGUI.BeginDisabledGroup(!isEditable); RenderFieldObjects("Objects", FieldController, true, true, CNFieldWindow.Type.extended); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUI.EndDisabledGroup(); CRGUIUtils.DrawSeparator(); CRGUIUtils.Splitter(); EditorGUILayout.Space(); EditorGUI.BeginDisabledGroup(!isEditable); List <ParameterModifierCommand> listPmCommand = Data.ListPmCommand; EditorGUILayout.Space(); DrawTimer(); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.LabelField("Object parameters to modify: "); CRGUIUtils.Splitter(); scroller_ = EditorGUILayout.BeginScrollView(scroller_); GUILayout.Space(10f); ParameterModifierCommand pmCommandToRemove = null; ParameterModifierCommand pmCommandToAdd = null; int addPosition = 0; int nPmCommand = listPmCommand.Count; for (int i = 0; i < nPmCommand; i++) { ParameterModifierCommand pmCommand = listPmCommand[i]; DrawPmCommand(i, pmCommand, ref pmCommandToRemove, ref pmCommandToAdd, ref addPosition); } if (pmCommandToRemove != null && listPmCommand.Count > 1) { Undo.RecordObject(Data, "Remove parameter - " + Data.Name); listPmCommand.Remove(pmCommandToRemove); pmCommandToRemove = null; EditorUtility.SetDirty(Data); } if (pmCommandToAdd != null) { Undo.RecordObject(Data, "Add parameter - " + Data.Name); listPmCommand.Insert(addPosition, pmCommandToAdd); pmCommandToAdd = null; EditorUtility.SetDirty(Data); } EditorGUI.EndDisabledGroup(); EditorGUILayout.EndScrollView(); GUILayout.EndArea(); }
public override void RenderGUI(Rect area, bool isEditable) { GUILayout.BeginArea(area); RenderTitle(isEditable, true, true, true); EditorGUI.BeginDisabledGroup(!isEditable); RenderFieldObjects("Bodies", FieldController, true, true, CNFieldWindow.Type.extended); EditorGUI.EndDisabledGroup(); EditorGUILayout.Space(); EditorGUILayout.Space(); CRGUIUtils.DrawSeparator(); CRGUIUtils.Splitter(); scroller_ = EditorGUILayout.BeginScrollView(scroller_); bool currentMode = EditorGUIUtility.wideMode; EditorGUIUtility.wideMode = true; EditorGUI.BeginDisabledGroup(!isEditable); EditorGUILayout.Space(); EditorGUILayout.Space(); DrawTimer(); EditorGUILayout.Space(); EditorGUI.BeginChangeCheck(); DrawExplosionTransform(); EditorGUILayout.Space(); DrawResolution(); DrawWavefronteSpeed(); DrawRange(); DrawDecay(); DrawMomentum(); EditorGUILayout.Space(); DrawObjectsLimitSpeed(); EditorGUILayout.Space(); DrawAsymmetry(); CRGUIUtils.Splitter(); EditorGUILayout.Space(); EditorGUI.BeginDisabledGroup(!Data.Asymmetry); DrawAsymmetryRandomSeed(); DrawAsymmetryBumpNumber(); DrawAsymmetryAdditionalSpeedRatio(); EditorGUI.EndDisabledGroup(); if (EditorGUI.EndChangeCheck()) { ApplyEntity(); EditorUtility.SetDirty(Data); } EditorGUI.EndDisabledGroup(); EditorGUIUtility.wideMode = currentMode; EditorGUILayout.Space(); EditorGUILayout.EndScrollView(); GUILayout.EndArea(); }
//---------------------------------------------------------------------------------- public override void RenderGUI(Rect area, bool isEditable) { GUILayout.BeginArea(area); RenderTitle(isEditable, true, false); EditorGUI.BeginDisabledGroup(!isEditable); RenderFieldObjects("Bodies", FieldController, true, true, CNFieldWindow.Type.extended); EditorGUILayout.Space(); EditorGUILayout.Space(); CRGUIUtils.DrawSeparator(); CRGUIUtils.Splitter(); scroller_ = EditorGUILayout.BeginScrollView(scroller_); bool currentMode = EditorGUIUtility.wideMode; EditorGUIUtility.wideMode = true; float originalLabelWidth = EditorGUIUtility.labelWidth; EditorGUIUtility.labelWidth = 180f; EditorGUILayout.Space(); EditorGUILayout.Space(); DrawTimer(); EditorGUILayout.Space(); DrawFluidDensity(); EditorGUILayout.Space(); DrawVelocity(); EditorGUILayout.Space(); DrawSpeedDeltaMax(); DrawAngleDeltaMax(); EditorGUILayout.Space(); CRGUIUtils.Splitter(); EditorGUILayout.Space(); Data.NoiseFoldout = EditorGUILayout.Foldout(Data.NoiseFoldout, "Noise"); if (Data.NoiseFoldout) { GUILayout.Space(10f); DrawPeriodTime(); DrawPeriodSpace(); } CRGUIUtils.Splitter(); EditorGUILayout.Space(); Data.HfFoldout = EditorGUILayout.Foldout(Data.HfFoldout, "High frequency"); if (Data.HfFoldout) { GUILayout.Space(10f); DrawHighFrequencyAM(); DrawHighFrequencySP(); } CRGUIUtils.Splitter(); EditorGUIUtility.labelWidth = originalLabelWidth; EditorGUIUtility.wideMode = currentMode; EditorGUILayout.EndScrollView(); GUILayout.EndArea(); }