void SwapCurves(MegaCurveSculptLayered mod, int t1, int t2) { if (t1 >= 0 && t1 < mod.curves.Count && t2 >= 0 && t2 < mod.curves.Count && t1 != t2) { MegaSculptCurve mt1 = mod.curves[t1]; mod.curves.RemoveAt(t1); mod.curves.Insert(t2, mt1); EditorUtility.SetDirty(target); } }
public override bool Inspector() { MegaCurveSculptLayered mod = (MegaCurveSculptLayered)target; #if !UNITY_5 && !UNITY_2017 && !UNITY_2018 && !UNITY_2019 && !UNITY_2020 EditorGUIUtility.LookLikeControls(); #endif if (GUILayout.Button("Add Curve")) { mod.curves.Add(MegaSculptCurve.Create()); } for (int i = 0; i < mod.curves.Count; i++) { CurveGUI(mod.curves[i]); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Up")) { if (i > 0) { SwapCurves(mod, i, i - 1); } } if (GUILayout.Button("Down")) { if (i < mod.curves.Count - 1) { SwapCurves(mod, i, i + 1); } } if (GUILayout.Button("Delete")) { mod.curves.RemoveAt(i); i--; } EditorGUILayout.EndHorizontal(); } return(false); }
public override void DrawSceneGUI() { MegaCurveSculptLayered mod = (MegaCurveSculptLayered)target; for (int i = 0; i < mod.curves.Count; i++) { if (mod.curves[i].enabled && mod.curves[i].uselimits) { Vector3 pos = mod.transform.TransformPoint(mod.curves[i].origin); Vector3 newpos = Handles.PositionHandle(pos, Quaternion.identity); if (newpos != pos) { mod.curves[i].origin = mod.transform.worldToLocalMatrix.MultiplyPoint(newpos); EditorUtility.SetDirty(target); } } } }
void SwapCurves(MegaCurveSculptLayered mod, int t1, int t2) { if ( t1 >= 0 && t1 < mod.curves.Count && t2 >= 0 && t2 < mod.curves.Count && t1 != t2 ) { MegaSculptCurve mt1 = mod.curves[t1]; mod.curves.RemoveAt(t1); mod.curves.Insert(t2, mt1); EditorUtility.SetDirty(target); } }