private Vector3 MapMeshPositionToCurve(Vector3 meshPosition, float xScale, out float t)
        {
            t = curve.DistanceToT(currentPosition + meshPosition.x * xScale);

            Vector3 toReturn = curve.GetPoint(t, false);

            toReturn += curve.GetNormal(t, false) * meshPosition.y;
            toReturn += curve.GetBiNormal(t, false) * meshPosition.z;

            return(toReturn);
        }
Exemplo n.º 2
0
        void DrawRuler()
        {
            float coveredDistance = rulerMarkerDistance;

            while (coveredDistance < line.CurveLength())
            {
                float t = line.DistanceToT(coveredDistance);

                Vector3 lineMiddle = line.GetPoint(t);
                Vector3 biNormal   = line.GetBiNormal(t);

                Handles.zTest = UnityEngine.Rendering.CompareFunction.LessEqual;
                Handles.color = Color.white;
                Handles.DrawLine(lineMiddle - biNormal * rulerMarkerLength, lineMiddle + biNormal * rulerMarkerLength);

                Handles.zTest = UnityEngine.Rendering.CompareFunction.Greater;
                Handles.color = Color.grey;
                Handles.DrawLine(lineMiddle - biNormal * rulerMarkerLength, lineMiddle + biNormal * rulerMarkerLength);

                coveredDistance += rulerMarkerDistance;
                Handles.zTest    = UnityEngine.Rendering.CompareFunction.Always;
            }
        }