Steering to avoid objects, problem with Raycasts

I’ve a script that makes raycasts to see which rough angle has the greatest distance in front of us. It’s making the car spin around and I imagine it has to do with me not understanding local vs global transforms. :confused: Anyways here it is:

Vector3 SteerThing(){

RaycastHit hitInfo;
float i = 0;	
Vector3 nextVector;
float dist= Mathf.Infinity;
Vector3 returnDirection= Vector3.zero;
for(i=0 ; i<7; i++)
	{
		nextVector=		Vector3.Lerp(transform.TransformDirection(Vector3.right),transform.TransformDirection(Vector3.left),i);
		Physics.Raycast(
		transform.position,
		nextVector,
		out hitInfo,
		Mathf.Infinity,
		myLayerMask);
		if(hitInfo.distance<dist)
		{
			dist=hitInfo.distance;
			returnDirection =nextVector;
			Debug.DrawRay(transform.position,nextVector*50);
		
		}
	}
return returnDirection;

}

Vector3 SteerThing(){

RaycastHit hitInfo;
int i = 0;	
int res =5;
Vector3 nextVector;
float dist= 0f;
Vector3 returnDirection= Vector3.zero;
	distancesList.Clear ();
	distDict.Clear ();
	
for(i=0 ; i<res; i++)
	{
		nextVector=	Vector3.Lerp (-transform.right,transform.forward,(float)i/res);

		Physics.SphereCast(transform.position,.3f,	nextVector,	out hitInfo,Mathf.Infinity,	myLayerMask);
		Debug.DrawRay(transform.position,nextVector*5);
		
		distances*=hitInfo.distance;*
  •   	distDict[hitInfo.distance]=nextVector;*
    
  •   }for(i=0 ; i<res; i++)*
    
  •   {*
    
  •   	nextVector=	Vector3.Lerp (transform.forward,transform.right,(float)i/res);*
    
  •   	Physics.SphereCast(transform.position,.3f,	nextVector,	out hitInfo,Mathf.Infinity,	myLayerMask);*
    

_ Debug.DrawRay(transform.position,nextVector*5);_

  •   	distances[i+res]=hitInfo.distance;*
    
  •   	distDict[hitInfo.distance]=nextVector;*
    
  •   }*
    
  •   		var list= distDict.Keys.ToList ();*
    
  •   	list.Sort ();*
    
  •   	returnDirection=distDict[list.Last()];// list.Last().Key;*
    
  •   	//Debug.Log (distDict[list.Last()]+" "+distDict[list.First()]);*
    
  •   	//	returnDirection=Vector3.Lerp (-transform.right,transform.right,(float)discancesList/res)+transform.forward;*
    
  • return returnDirection;*

  • }*