public void UpdateTrain(Transform t, float distance, ref MoveData moveData) { TrackPathBase track = moveData.currentTrack; do { if (moveData.extra != 0f) { LinkedListNode <TrackPathBase> lln = tracks.Find(track); if (moveData.extra > 0f) { if (lln.Next == null) { lln = tracks.First; } else { lln = lln.Next; } moveData.lastMove = 0f; } else if (moveData.extra < 0f) { if (lln.Previous == null) { lln = tracks.Last; } else { lln = lln.Previous; } moveData.lastMove = 1f; } if (lln != null) { track = lln.Value; } moveData.currentTrack = track; distance = moveData.extra; moveData.extra = 0f; if (lln == null) { break; } } track.MoveTransform(t, distance, ref moveData); } while (moveData.extra > 0f); }
// public Vector3 snap = Vector3.one * 0.5f; // // SerializedProperty PointA; // // SerializedProperty PointB; // // SerializedProperty Handle; // // SerializedProperty Length; // // void OnEnable() // // { // // // Setup the SerializedProperties. // // PointA = serializedObject.FindProperty("PointA"); // // PointB = serializedObject.FindProperty("PointB"); // // Handle = serializedObject.FindProperty("Handle"); // // Length = serializedObject.FindProperty("Length"); // // } // // public override void OnInspectorGUI() // // { // // serializedObject.Update(); // // serializedObject.ApplyModifiedProperties(); // // } public override void OnInspectorGUI() { DrawDefaultInspector(); TrackPathBase tp = (TrackPathBase)target; EditorGUILayout.LabelField("Length", tp.Length.ToString()); if (GUILayout.Button("Compute Values")) { tp.ComputeValues(); tp.UpdateLineRenderer(); } if (GUILayout.Button("Update LineRenderer")) { tp.UpdateLineRenderer(); } }