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 () {
                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.