Wall Pushing an Object

Hello, I'm trying to make a wall that push an object when it hits the wall and when the wall its yellow painted.

I already made a wall that when I paint the wall with the blue color, it pull an object, but I don't know how to make pushing it when its touching.

Here's the Yellow Wall Script (it works):

using UnityEngine;   
using System.Collections;

public class NewBehaviourScript : MonoBehaviour {

public Rigidbody bola; 
public float speed = 2;

public void Update(){

}
public void OnCollisionEnter(Collision collision) 
{ 
 if (collision.gameObject.tag == ("bola")){   
 if (renderer.material.color==Color.yellow){

      Debug.Log("tocou");
  bola.transform.Translate(Vector3.forward* speed * Time.deltaTime);
        }
    }     
  } 
 }

I think that you need to apply a force to the rigidbody to simulate a "real" push, if you use transform the push is not going to be realistic, and it will be more similar to an animation.

To apply a force to a rigidbody in the Z axis (in c# for example):

Vector3 myForce = new Vector3(0.0f, 0.0f, 10.0f);
bola.AddForce(myForce);

The vector force depends on what you want to do :)

I used this sugestion, but in game, the object only move in Z. The game have many wall's, and the wall push the object. i want the wall increase the distance between "bola" and the wall.

thx