public override void OnInspectorGUI() { _curve = target as NodeCurve; EditorGUI.BeginChangeCheck(); var startPoint = _curve.points[0]; startPoint.transform = EditorGUILayout.ObjectField("Start Point", startPoint.transform, typeof(Transform), true) as Transform; if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(_curve, "Change start point"); EditorUtility.SetDirty(_curve); startPoint.SetRelativeTangent(_curve.points[1].Position); } EditorGUI.BeginChangeCheck(); var endPoint = _curve.points[_curve.points.Count - 1]; endPoint.transform = EditorGUILayout.ObjectField("End Point", endPoint.transform, typeof(Transform), true) as Transform; if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(_curve, "Change end point"); EditorUtility.SetDirty(_curve); endPoint.SetRelativeTangent(_curve.points[_curve.points.Count - 2].Position); } AddNewPoint(); InspectorCurrentPoint(); EditorGUILayout.LabelField("Debug", EditorStyles.boldLabel); DrawDefaultInspector(); }
public override void OnNodeEnable() { node = target as NodeCurve; delayedChanges.BindCallback(notifyKey, (unused) => { NotifyReload(); node.CurveTerrain(); node.sCurve.SetAnimationCurve(node.curve); }); }
public static NodeBase createNewUnaryOperator(UnaryOperatorType t) { NodeBase rlt = null; if (t == UnaryOperatorType.Curve) { rlt = new NodeCurve(); } else if (t == UnaryOperatorType.Normal) { rlt = new NodeNormal(); } else if (t == UnaryOperatorType.Erosion) { rlt = new NodeErosion(); } rlt.initInput(); rlt.guid = Guid.NewGuid().ToString(); return(rlt); }
private void OnSceneGUI() { _curve = target as NodeCurve; if (!_curve.Ready) { return; } for (var i = 0; i < _curve.points.Count - 1; i += 1) { var startPoint = _curve.points[i]; if (i == 0) { DrawPoint(i, startPoint); } var startTangent = DrawTangentPoint(i, TangentPoint.B); var endPoint = _curve.points[i + 1]; DrawPoint(i + 1, endPoint); var endTangent = DrawTangentPoint(i + 1, TangentPoint.A); Handles.DrawBezier(startPoint.GlobalPosition, endPoint.GlobalPosition, startTangent, endTangent, Color.white, null, 2f); } }