void OnSceneGUI()
 {
     if (trackMesh.autoUpdate && Event.current.type == EventType.Repaint)
     {
         trackMesh.UpdateMesh();
     }
 }
Exemple #2
0
    public void Generate()
    {
        var previousAnchor  = spline.GetControlPoint(spline.ControlPointCount - 1);
        var previousControl = spline.GetControlPoint(spline.ControlPointCount - 2);

        // Random random anchors with control points automatically smoothed
        var anchors = GenerateAnchors(anchorGenerationCount, previousAnchor, ref forward);

        splinePoints = SmoothBezierFromAnchors(anchors);

        for (var i = 1; i < splinePoints.Length; i += 3)
        {
            spline.AddCurve(splinePoints[i], splinePoints[i + 1], splinePoints[i + 2]);
            spline.SetControlPointMode(spline.ControlPointCount - 1, BezierControlPointMode.Mirrored);
        }
        mesh.UpdateMesh();
    }