only look at the player if the raycast is not hitting the obstacle.

Hey guys, Ive got an avoidance script here that works but the only problem im having is that it always tries to look at the player even if its going around the obstacle causing it to jitter. I was wondering how i can make it only look at the player if the raycast is not hitting the obstacle but make it move towards the player at the same time.
any help would be appreciated,

using UnityEngine;
using System.Collections;

public class enemyAI : MonoBehaviour
{	
	public Transform target;
	public float moveSpeed;
	public float rotationSpeed;
	public float minDistance = 0.5f;
	public static enemyAI enemyAIself; 
	RaycastHit hit;
	
	void Awake()
	{
		enemyAIself = this;	
	}
	void Start () 
	{
		GameObject goTo = GameObject.FindGameObjectWithTag("Player");
		target = goTo.transform;
	}

	void Update () 
	{
		Vector3 dir = (target.position - transform.position).normalized;
		if (Physics.Raycast(transform.position, transform.forward, out hit, 5.0f, (1<<8)))
		{
		Debug.DrawRay(transform.position, hit.point, Color.blue);
		dir += hit.normal  * 50;
		}
		
		Vector3 leftR = transform.position;
		Vector3 rightR = transform.position;
		
		leftR.x -= 2;
		rightR.x += 2;
		
		if (Physics.Raycast(leftR, transform.forward, out hit, 5.0f, (1<<8)))
		{
     	Debug.DrawRay(leftR, hit.point, Color.blue);
				dir += hit.normal  * 50;
		}
		
		if (Physics.Raycast(rightR, transform.forward, 5.0f, (1<<8)))
		{
		Debug.DrawRay(rightR, hit.point, Color.blue);
		dir += hit.normal  * 50;

		}	
		Quaternion rot = Quaternion.LookRotation(dir);
		transform.rotation = Quaternion.Slerp(transform.rotation, rot, rotationSpeed * Time.deltaTime);

		if (Vector3.SqrMagnitude(target.position - transform.position)> (minDistance *  minDistance))
		{
			//move towards the target
			transform.position += transform.forward * moveSpeed * Time.deltaTime;
		}
		
	}
	
	
}

Check out linecast : Physics.Linecast

Heres how I used it :

RaycastHit hit;		
if ((Physics.Linecast(playerPos.transform.position,target.transform.position,out hit) && hit.collider.tag == "target"))
		{		
			turning = false;
		}