예제 #1
0
    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();
        }
    }