public override void OnInspectorGUI() { if (PathManager == null) { return; } EditorGUILayout.BeginVertical(); pathType = (PATHTYPE)EditorGUILayout.EnumPopup("Display:", PathManager.displayMethod); if (pathType != prevPathType) { switch (pathType) { case PATHTYPE.POLY_LINE: path = lp; break; case PATHTYPE.CATMULLROM_SPLINE: path = crsp; break; default: path = lp; break; } PathManager.SetPathType(pathType); prevPathType = pathType; } path.SetPathManager(PathManager); EditorGUILayout.PrefixLabel("Minimum Height"); minht = EditorGUILayout.TextField(minht, GUILayout.ExpandWidth(false)); if (minht.CompareTo(oldminht) != 0) { float fval; if (float.TryParse(minht, out fval)) { PathManager.minHeight = fval; } oldminht = minht; } EditorGUILayout.PrefixLabel("Tool Color"); PathManager.lineColor = EditorGUILayout.ColorField(PathManager.lineColor, GUILayout.ExpandWidth(false)); if (GUILayout.Button("Duplicate Endpoints")) { PathManager.DuplicateEndPoints(); } if (GUILayout.Button("Add New Point")) { PathManager.AddNewPoint(); } int i = 0; foreach (Vector3 v in PathManager.points) { EditorGUILayout.Vector3Field(i.ToString(), v); i++; } if (GUILayout.Button("Remove All Points")) { PathManager.RemoveAllPoints(); } GUILayout.BeginHorizontal("box"); pointtoremove = GUILayout.TextField(pointtoremove, 25); if (GUILayout.Button("Remove Point " + pointtoremove)) { int val = -1; if (int.TryParse(pointtoremove, out val)) { if (val >= 0 && val < PathManager.points.Count) { PathManager.RemovePoint(val); } } } GUILayout.EndHorizontal(); EditorGUILayout.EndVertical(); if (GUI.changed) { EditorUtility.SetDirty(PathManager); } }