distance between generated skidmark meshes and wheel colliders

distance becomes greater with more velocity
this is the code:-

#pragma strict
private var curFriction : float;
var skidAt : float = 0.6;
var smoke : GameObject;
var skidMarkWidth : float = 0.2;
var material : Material;
var susprot : float;
private var isSkidding : int;
private var fisSkidding : int;
private var visSkidding : int;
private var fvisSkidding : int;
private var lastpos : Vector3[] = new Vector3[2];
private var flastpos : Vector3[] = new Vector3[2];
private var vlastpos : Vector3[] = new Vector3[2];
private var fvlastpos : Vector3[] = new Vector3[2];
var goStart : Transform;
var goEnd   : Transform;
var suspension : Transform;
var factor : float = 1.0;
function Start () {
     SetPos(goStart.position, goEnd.position);
   
}
function Update () {
     SetPos(goStart.position, goEnd.position);
     var hit : WheelHit;
     var rpm : float = gameObject.GetComponent (WheelCollider).rpm;
     gameObject.GetComponent (WheelCollider).GetGroundHit (hit);
     curFriction = Mathf.Abs (hit.sidewaysSlip);
     if (curFriction >= skidAt) {
         smoke.GetComponent.<ParticleSystem>().Play();
         if (curFriction < 1) {
             SkidMarkEffect ();
             fSkidMarkEffect ();
             visSkidding = 0;
             fvisSkidding = 0;
         }
         if (curFriction >= 1) {
             vSkidMarkEffect ();
             fvSkidMarkEffect ();
             isSkidding = 0;
             fisSkidding = 0;
         }
     }
     else {
         if (curFriction < skidAt){
             smoke.GetComponent.<ParticleSystem>().Stop();
             isSkidding = 0;
             fisSkidding = 0;
             visSkidding = 0;
             fvisSkidding = 0;
         }
     }
   
}
function SetPos(start : Vector3, end : Vector3) {
     var dir = end - start;
     var mid = (dir) / 2.0 + start;
     suspension.transform.position.y = mid.y;
     suspension.transform.localRotation.eulerAngles.x = susprot;
     suspension.transform.localRotation.eulerAngles.y = 0;
     suspension.transform.localRotation.eulerAngles.z = 0;
     suspension.transform.localScale.z = dir.magnitude * factor;
}
function SkidMarkEffect () {
     var hit : WheelHit;
     var skidMark : GameObject = new GameObject ("Skid Mark");
     var skidMarkMesh : Mesh = new Mesh ();
     var skidMarkMeshVertices : Vector3[] = new Vector3[4];
     var skidMarkMeshTriangles : int[] = new int[6];
     gameObject.GetComponent (WheelCollider).GetGroundHit (hit);
     skidMark.AddComponent (MeshFilter);
     skidMark.AddComponent (MeshRenderer);
     skidMarkMesh.name = "Skid Mark Mesh";
     if (isSkidding == 0) {
         skidMarkMeshVertices[0] = hit.point + Quaternion.Euler (transform.eulerAngles.x, transform.eulerAngles.y, transform.eulerAngles.z) *Vector3 ( skidMarkWidth, 0.01, 0);
         skidMarkMeshVertices[1] = hit.point + Quaternion.Euler (transform.eulerAngles.x, transform.eulerAngles.y, transform.eulerAngles.z) *Vector3 (-skidMarkWidth, 0.01, 0);
         skidMarkMeshVertices[2] = hit.point + Quaternion.Euler (transform.eulerAngles.x, transform.eulerAngles.y, transform.eulerAngles.z) *Vector3 (-skidMarkWidth, 0.01, 0);
         skidMarkMeshVertices[3] = hit.point + Quaternion.Euler (transform.eulerAngles.x, transform.eulerAngles.y, transform.eulerAngles.z) *Vector3 ( skidMarkWidth, 0.01, 0);
         lastpos[0] = skidMarkMeshVertices[2];
         lastpos[1] = skidMarkMeshVertices[3];
         isSkidding = 1;
     }
     else {
         skidMarkMeshVertices[0] = lastpos[1];
         skidMarkMeshVertices[1] = lastpos[0];
         skidMarkMeshVertices[2] = hit.point + Quaternion.Euler (transform.eulerAngles.x, transform.eulerAngles.y, transform.eulerAngles.z) *Vector3 (-skidMarkWidth, 0.01, 0);
         skidMarkMeshVertices[3] = hit.point + Quaternion.Euler (transform.eulerAngles.x, transform.eulerAngles.y, transform.eulerAngles.z) *Vector3 ( skidMarkWidth, 0.01, 0);
         lastpos[0] = skidMarkMeshVertices[2];
         lastpos[1] = skidMarkMeshVertices[3];
     }
     skidMarkMeshTriangles = [0, 1, 2, 2, 3, 0];
     skidMarkMesh.vertices = skidMarkMeshVertices;
     skidMarkMesh.triangles = skidMarkMeshTriangles;
     skidMark.GetComponent (MeshFilter).mesh = skidMarkMesh;
     skidMark.GetComponent (Renderer).material = material;
     Destroy(skidMark, 120);
}
function fSkidMarkEffect () {
     var hit : WheelHit;
     var fskidMark : GameObject = new GameObject ("fSkid Mark");
     var fskidMarkMesh : Mesh = new Mesh ();
     var fskidMarkMeshVertices : Vector3[] = new Vector3[4];
     var fskidMarkMeshTriangles : int[] = new int[6];
     gameObject.GetComponent (WheelCollider).GetGroundHit (hit);
     fskidMark.AddComponent (MeshFilter);
     fskidMark.AddComponent (MeshRenderer);
     fskidMarkMesh.name = "fSkid Mark Mesh";
     if (fisSkidding == 0) {
         fskidMarkMeshVertices[0] = hit.point + Quaternion.Euler (transform.eulerAngles.x, transform.eulerAngles.y, transform.eulerAngles.z) *Vector3 (-skidMarkWidth, 0.01, 0);
         fskidMarkMeshVertices[1] = hit.point + Quaternion.Euler (transform.eulerAngles.x, transform.eulerAngles.y, transform.eulerAngles.z) *Vector3 ( skidMarkWidth, 0.01, 0);
         fskidMarkMeshVertices[2] = hit.point + Quaternion.Euler (transform.eulerAngles.x, transform.eulerAngles.y, transform.eulerAngles.z) *Vector3 ( skidMarkWidth, 0.01, 0);
         fskidMarkMeshVertices[3] = hit.point + Quaternion.Euler (transform.eulerAngles.x, transform.eulerAngles.y, transform.eulerAngles.z) *Vector3 (-skidMarkWidth, 0.01, 0);
         flastpos[0] = fskidMarkMeshVertices[2];
         flastpos[1] = fskidMarkMeshVertices[3];
         fisSkidding = 1;
     }
     else {
         fskidMarkMeshVertices[0] = flastpos[1];
         fskidMarkMeshVertices[1] = flastpos[0];
         fskidMarkMeshVertices[2] = hit.point + Quaternion.Euler (transform.eulerAngles.x, transform.eulerAngles.y, transform.eulerAngles.z) *Vector3 ( skidMarkWidth, 0.01, 0);
         fskidMarkMeshVertices[3] = hit.point + Quaternion.Euler (transform.eulerAngles.x, transform.eulerAngles.y, transform.eulerAngles.z) *Vector3 (-skidMarkWidth, 0.01, 0);
         flastpos[0] = fskidMarkMeshVertices[2];
         flastpos[1] = fskidMarkMeshVertices[3];
     }
     fskidMarkMeshTriangles = [0, 1, 2, 2, 3, 0];
     fskidMarkMesh.vertices = fskidMarkMeshVertices;
     fskidMarkMesh.triangles = fskidMarkMeshTriangles;
     fskidMark.GetComponent (MeshFilter).mesh = fskidMarkMesh;
     fskidMark.GetComponent (Renderer).material = material;
     Destroy(fskidMark, 120);
}
function vSkidMarkEffect () {
     var hit : WheelHit;
     var vskidMark : GameObject = new GameObject ("vSkid Mark");
     var vskidMarkMesh : Mesh = new Mesh ();
     var vskidMarkMeshVertices : Vector3[] = new Vector3[4];
     var vskidMarkMeshTriangles : int[] = new int[6];
     gameObject.GetComponent (WheelCollider).GetGroundHit (hit);
     vskidMark.AddComponent (MeshFilter);
     vskidMark.AddComponent (MeshRenderer);
     vskidMarkMesh.name = "vSkid Mark Mesh";
     if (visSkidding == 0) {
         vskidMarkMeshVertices[0] = hit.point + Quaternion.Euler (transform.eulerAngles.x, transform.eulerAngles.y, transform.eulerAngles.z) *Vector3 ( 0, 0.01, skidMarkWidth);
         vskidMarkMeshVertices[1] = hit.point + Quaternion.Euler (transform.eulerAngles.x, transform.eulerAngles.y, transform.eulerAngles.z) *Vector3 ( 0, 0.01, -skidMarkWidth);
         vskidMarkMeshVertices[2] = hit.point + Quaternion.Euler (transform.eulerAngles.x, transform.eulerAngles.y, transform.eulerAngles.z) *Vector3 ( 0, 0.01, -skidMarkWidth);
         vskidMarkMeshVertices[3] = hit.point + Quaternion.Euler (transform.eulerAngles.x, transform.eulerAngles.y, transform.eulerAngles.z) *Vector3 ( 0, 0.01, skidMarkWidth);
         vlastpos[0] = vskidMarkMeshVertices[2];
         vlastpos[1] = vskidMarkMeshVertices[3];
         visSkidding = 1;
     }
     else {
         vskidMarkMeshVertices[0] = vlastpos[1];
         vskidMarkMeshVertices[1] = vlastpos[0];
         vskidMarkMeshVertices[2] = hit.point + Quaternion.Euler (transform.eulerAngles.x, transform.eulerAngles.y, transform.eulerAngles.z) *Vector3 ( 0, 0.01, -skidMarkWidth);
         vskidMarkMeshVertices[3] = hit.point + Quaternion.Euler (transform.eulerAngles.x, transform.eulerAngles.y, transform.eulerAngles.z) *Vector3 ( 0, 0.01, skidMarkWidth);
         vlastpos[0] = vskidMarkMeshVertices[2];
         vlastpos[1] = vskidMarkMeshVertices[3];
     }
     vskidMarkMeshTriangles = [0, 1, 2, 2, 3, 0];
     vskidMarkMesh.vertices = vskidMarkMeshVertices;
     vskidMarkMesh.triangles = vskidMarkMeshTriangles;
     vskidMark.GetComponent (MeshFilter).mesh = vskidMarkMesh;
     vskidMark.GetComponent (Renderer).material = material;
     Destroy(vskidMark, 120);
}
function fvSkidMarkEffect () {
     var hit : WheelHit;
     var fvskidMark : GameObject = new GameObject ("fvSkid Mark");
     var fvskidMarkMesh : Mesh = new Mesh ();
     var fvskidMarkMeshVertices : Vector3[] = new Vector3[4];
     var fvskidMarkMeshTriangles : int[] = new int[6];
     gameObject.GetComponent (WheelCollider).GetGroundHit (hit);
     fvskidMark.AddComponent (MeshFilter);
     fvskidMark.AddComponent (MeshRenderer);
     fvskidMarkMesh.name = "fvSkid Mark Mesh";
     if (fvisSkidding == 0) {
         fvskidMarkMeshVertices[0] = hit.point + Quaternion.Euler (transform.eulerAngles.x, transform.eulerAngles.y, transform.eulerAngles.z) *Vector3 ( 0, 0.01, -skidMarkWidth);
         fvskidMarkMeshVertices[1] = hit.point + Quaternion.Euler (transform.eulerAngles.x, transform.eulerAngles.y, transform.eulerAngles.z) *Vector3 ( 0, 0.01, skidMarkWidth);
         fvskidMarkMeshVertices[2] = hit.point + Quaternion.Euler (transform.eulerAngles.x, transform.eulerAngles.y, transform.eulerAngles.z) *Vector3 ( 0, 0.01, skidMarkWidth);
         fvskidMarkMeshVertices[3] = hit.point + Quaternion.Euler (transform.eulerAngles.x, transform.eulerAngles.y, transform.eulerAngles.z) *Vector3 ( 0, 0.01, -skidMarkWidth);
         fvlastpos[0] = fvskidMarkMeshVertices[2];
         fvlastpos[1] = fvskidMarkMeshVertices[3];
         fvisSkidding = 1;
     }
     else {
         fvskidMarkMeshVertices[0] = fvlastpos[1];
         fvskidMarkMeshVertices[1] = fvlastpos[0];
         fvskidMarkMeshVertices[2] = hit.point + Quaternion.Euler (transform.eulerAngles.x, transform.eulerAngles.y, transform.eulerAngles.z) *Vector3 ( 0, 0.01, skidMarkWidth);
         fvskidMarkMeshVertices[3] = hit.point + Quaternion.Euler (transform.eulerAngles.x, transform.eulerAngles.y, transform.eulerAngles.z) *Vector3 ( 0, 0.01, -skidMarkWidth);
         fvlastpos[0] = fvskidMarkMeshVertices[2];
         fvlastpos[1] = fvskidMarkMeshVertices[3];
     }
     fvskidMarkMeshTriangles = [0, 1, 2, 2, 3, 0];
     fvskidMarkMesh.vertices = fvskidMarkMeshVertices;
     fvskidMarkMesh.triangles = fvskidMarkMeshTriangles;
     fvskidMark.GetComponent (MeshFilter).mesh = fvskidMarkMesh;
     fvskidMark.GetComponent (Renderer).material = material;
     Destroy(fvskidMark, 120);
}

note: removing the extra functions does not fix the problem

Take a look at this page, please and edit your post: Using code tags properly - Unity Engine - Unity Discussions