rigidbody not moving

Hey guys, i’m new to unity but I have android studio experience looking to see how the game industry is !

So i have a ball which is a rigidbody with a circular collider which is located between two walls. The ball is moved to the right when right arrow is pressed and left when left arrow is pressed with transform.position . The initial problem was that the ball was going through the walls even though it shouldn’t, because I was using transform.position instead of rigidbody.moveposition which was messing with the physics engine (from what I read here). Now I am trying to use rigidbody.moveposition but the object is not moving anymore :

Here’s a video to help you guys get my situation, everytime you hear a fairly loud bang it means i’m hitting either left or right mouse on keyboard :


(Script attached to the ball)

using UnityEngine;
using System.Collections;

public class ballscript : MonoBehaviour {
	public Vector3 target = Vector3.zero;
	public Vector3 velocity = Vector3.zero;
	public float smoothTime = 0.3F;
	public bool right = false;
	public bool left = false;
	public Rigidbody rb;
	public float health = 100;

	// Use this for initialization
	void Start () 
		rb = GetComponent<Rigidbody> ();

	IEnumerator Example() {
		yield return new WaitForSeconds(0.0525f);
		left = false;
		right = false;

	// Update is called once per frame
	void FixedUpdate () 

		if (right == true) // OBJECT DOESN'T MOVE.

			target.x = rb.position.x + 18;
			target.y = rb.position.y;
			target.z = -1;
			rb.MovePosition(Vector3.SmoothDamp (transform.position, target, ref velocity, smoothTime)); 

			StartCoroutine(Example()); // NEVER CALLED.


		if (left == true) // OBJECT DOES MOVE.

			target.x = transform.position.x - 18;
			target.y = transform.position.y;
			target.z = -1;
			transform.position = Vector3.SmoothDamp (transform.position, target, ref velocity, smoothTime); 
			StartCoroutine (Example ()); //CALLED.



	void OnBecameInvisible()
		Time.timeScale = 0;
		Destroy (gameObject);

	void Update()

		if (Input.GetKeyDown (KeyCode.RightArrow)) 

			right = true;

		if (Input.GetKeyDown (KeyCode.LeftArrow)) 
			left = true;


BALL: http://content.screencast.com/users/Loftyy/folders/Jing/media/9edeab36-db0b-4aa5-9b23-e4d0aba67a1f/ball.png

WALL: http://content.screencast.com/users/Loftyy/folders/Jing/media/94a5b966-e9e0-4ad6-8c05-c5af1945d5e0/2015-11-30_0026.png

I hope someone can help me, i’m really determined to fix this and continue on my endeavor.

You need to attach your rigidbody to your script.