Change object’s color upon collision

I have searched and searched and although the setup and required C# script seems to be straightforward, I am unable to get this to work. I have two gameobjects in my scene: a Sphere and a Cube. The Sphere is scaled up and down in size via an external input… this works GREAT! What I am wanting to do is to place the Cube close and to the right of the Sphere and once the Sphere increases in size so that it contacts the Cube, I want the Sphere to change color to yellow for 0.5 seconds and then revert back to its original color (white). Unfortunately, I am getting some strange behavior from the Cube.

What I have done thus far: 1). with the Sphere’s Inspector, under the ‘Sphere Collider’ section, I have checked the box for “Is Trigger”. 2). On the Cube I have added a Rigidbody and the “Use Gravity” field is cleared as well as “Is Kinematic” is unchecked. I have positioned the Cube close enough to the Sphere so that they are not in contact but close enough so that when the Sphere is scaled up in size the two will make contact with one another. Initially, I added a script to the cube using a statement of “void OnCollisionEnter (Collider other) {“ and I accompanied this with just a simple Debug.Log statement for now so I will know if and when the contact occurs. I have also tried this with void OnTriggerEnter but it, too, does not work. When I press play, the Cube simply starts slowly spinning across the screen horizontally and, of course, the two never collide; however, the Debug statement appears as if they did??? I am at a loss here about what to do. First, I need to understand why the Cube is moving horizontally on the screen and then discover what scripting is required to make the simple color change upon contact.

Any guidance will be much appreciated.
Sincerely,
Daryl G

using UnityEngine;
using System.Collections;

public class cubeCollision : MonoBehaviour {

	void OnTriggerEnter(Collider other) {
				Debug.Log("Contact was made!");
	}

}

after you have made the changes redeemer mentioned

using UnityEngine;
using System.Collections;

public class cubeCollision : MonoBehaviour {

public float colourChangeDelay = 0.5f;
float currentDelay = 0f;
bool colourChangeCollision = false;

void OnTriggerEnter(Collider other) {
	Debug.Log("Contact was made!");
	colourChangeCollision = true;
	currentDelay = Time.time + colourChangeDelay;
}

void checkColourChange()
{		
	if(colourChangeCollision)
	{
		transform.renderer.material.color = Color.yellow;
		if(Time.time > currentDelay)
		{
			transform.renderer.material.color = Color.white;
			colourChangeCollision = false;
		}
	}
}

void Update()
{
	checkColourChange();

}

}

public float colourChangeDelay = 0.5f;
float currentDelay = 0f;
bool colourChangeCollision = false;

void OnCollisionEnter(Collision other) {
	Debug.Log("Contact was made!");
	colourChangeCollision = true;
	currentDelay = Time.time + colourChangeDelay;
}
void checkColourChange()
{        
	if(colourChangeCollision)
	{
		transform.GetComponent<Renderer>().material.color = Color.yellow;
		if(Time.time > currentDelay)
		{
			transform.GetComponent<Renderer>().material.color = Color.white;
			colourChangeCollision = false;
		}
	}
}

void Update()
{
	checkColourChange();
}

}