finding vertices by distance to hit point

I cannot understand why my script is not detecting the vertices closest to the hit .point of a collider hit.

function CheckForHitVerts( hitPos : Vector3 )  
{	
	var magRange : Vector2 = Vector2( 1, 1 );
	var magRangeVerts : Vector2 = Vector2( 0, 0 );
	var vertsDamaged : int = 0;
		
	// rayhit in world space. find hit in local space.
	//var hitWorldPos : Vector3; // this is passed in the function ( hitPos : Vector3 )
	var hitLocalPos : Vector3 = hitPos - transform.position; // Vector3();
	var vertWorldPos : Vector3;
	
	for (var i:int = 0; i < verts.length; i ++)
	{
		vertWorldPos = verts *+ transform.position;*

//Debug.Log( “” + i + " vert : Localpos = " + verts + " - hitLocalPos " + hitLocalPos + " . mag " + (verts - hitLocalPos).magnitude + " :: vertWorldPos " + vertWorldPos + " - hitPos " + hitPos + " . mag " + (vertWorldPos - hitPos).magnitude + " :: " );
Debug.Log( “” + i + " vert : Localpos.norm = " + verts_.normalized + " - hitLocalPos.norm " + hitLocalPos.normalized + " . mag " + (verts*.normalized - hitLocalPos.normalized).magnitude + " :: vertWorldPos.normalized - hitPos.normalized ).mag " + (vertWorldPos.normalized - hitPos.normalized).magnitude + " :: " );*_

* // store lowest and highest magnitude*
_ if ( (verts*.normalized - hitLocalPos.normalized).magnitude < magRange.x )
{
magRange.x = (verts.normalized - hitLocalPos.normalized).magnitude;
magRangeVerts.x = i;
}
if ( (verts.normalized - hitLocalPos.normalized).magnitude > magRange.y )
{
magRange.y = (verts.normalized - hitLocalPos.normalized).magnitude;
magRangeVerts.y = i;
}*_

* // Find Damaged Verts*
_ var damage : float = rescaleCurve.Evaluate( ((hitPos - transform.position) - verts*).magnitude );*_

* if (damage > 0.0)*
* {*
//verts = verts * damage;

Debug.Log( “verts[” + i + "] * damage of " + damage + " = " + verts + " : " + ((hitPos - transform.position) - verts*).magnitude );*
* vertsDamaged ++;*
* }*
* }*
* Debug.Log( "magnitude range = " + magRange + " : vertsDamaged = " + vertsDamaged + " out of " + verts.length );*

* // Show hitPoint as point on mesh*
_ verts[magRangeVerts.x] = verts[magRangeVerts.x] * 0.5;
verts[magRangeVerts.y] = verts[magRangeVerts.y] * 1.5;_

* // update vertices*
* myMesh.vertices = verts;*

* // update Collider*
* theMeshCollider.sharedMesh = myMesh;*
}

I rewrote your script using InverseTransformPoint, and optimized the search for the nearest and farthest vertices (whose purpose seems totally unclear to me) - hope this can help:

function CheckForHitVerts( hitPos : Vector3 )  
{   
    // rayhit in world space. find hit in local space.
    var hitLocalPos : Vector3 = transform.InverseTransformPoint(hitPos);
    // get a normalized version of it:
    var hitPosNorm : Vector3 = hitLocalPos.normalized;
    // initialize min/max values (x = min, y = max):
    var magRange : Vector2 = Vector2( Mathf.Infinity, Mathf.NegativeInfinity );
    var magRangeVerts : Vector2;
    var vertsDamaged : int = 0;
    for (var i:int = 0; i < verts.length; i ++)
    {
       // I don't know why you're looking for the nearest and farthest
       // vertices, but this is an optimized way to do that:
       var dist : float = Vector3.Distance(verts*.normalized, hitPosNorm);*

// store lowest and highest magnitude
if ( dist < magRange.x )
{
magRange.x = dist;
magRangeVerts.x = i;
}
if ( dist > magRange.y )
{
magRange.y = dist;
magRangeVerts.y = i;
}
// Find Damaged Verts
var damage : float = rescaleCurve.Evaluate( (hitLocalPos - verts*).magnitude );*
if (damage > 0.0)
{
// push near vertices towards mesh pivot
verts = verts * damage;
vertsDamaged ++;
}
}
// update vertices
myMesh.vertices = verts;
// update Collider
theMeshCollider.sharedMesh = myMesh;
}