I tried this
public class AI : FsmStateAction;
var turnSpeed : float = 5;
var speed : float = 10;
var distanceToGo : float = 5;
var leftOrRight : boolean = true;
function Update () {
if(Input.GetKeyDown(KeyCode.E)){
if(leftOrRight)
leftOrRight = false;
else
leftOrRight = true;
}
var hit : RaycastHit;
var fwd : Vector3 = transform.forward;
if(Physics.Raycast(transform.position, fwd, hit, distanceToGo)){
if(leftOrRight)
transform.Rotate(Vector3.up, 90 * turnSpeed * Time.smoothDeltaTime);
else
transform.Rotate(Vector3.up, -90 * turnSpeed * Time.smoothDeltaTime);
}
else{
transform.Translate(Vector3.forward * speed * Time.smoothDeltaTime);
}
}