# Click To Move Character Walks Straight Through Objects

Hey there.
I currently have a working code that allows me to click anywhere on a plane that then moves my character to that position. The problem is, the character walks through all the objects there!
I have tried normal colliders, but that doesn’t work, but when I put a rigid body on the object the character can not walk through it per say, but instead moves it out of the way. If I freeze the positions X, Y and Z of the box through rigidbody, my character just walks through it again.
Is there any code I can use so that the character cannot walk through the object but also so that the object does not move when hit?

``````       var smooth:int; // Determines how quickly object moves towards position

private var targetPosition:Vector3;

var speed = 10;

function Update () {

if(Input.GetKeyDown(KeyCode.Mouse0))

{

smooth=0;

var playerPlane = new Plane(Vector3.up, transform.position);

var ray = Camera.main.ScreenPointToRay (Input.mousePosition);

var hitdist = 0.0;

if (playerPlane.Raycast (ray, hitdist)) {

var targetPoint = ray.GetPoint(hitdist);

targetPosition = ray.GetPoint(hitdist);

var targetRotation = Quaternion.LookRotation(targetPoint - transform.position);

transform.rotation = targetRotation;

}

}

var dir:Vector3 = targetPosition - transform.position;

var dist:float = dir.magnitude;

var move:float = speed * Time.deltaTime;

if(dist > move){

transform.position += dir.normalized * move;

} else {

transform.position = targetPosition;

}

transform.position += (targetPosition - transform.position).normalized * speed * Time.deltaTime;

}
``````

The problem is that you are directly changing the character’s position, which doesn’t take collision into account. Try using AddForce in the direction of movement instead.