How would I make addforce only apply when a ball is touching an object on my character

I want to make a ball launch from a catapult mechanism when i press the space bar. How would i make it so that it has to be touching an object on the character so that it would move. Also how would I make it that it goes in the direction that the character is facing.
This is my code so far. I am using C#
using UnityEngine;
using System.Collections;

public class shooting : MonoBehaviour {
	Animator anim;
	// Use this for initialization
	void Start () {
		anim = GetComponent<Animator> (); 
	
	}
	
	// Update is called once per frame
	void Update () {
		if (Input.GetKey (KeyCode.Space))
						rigidbody.AddForce (Vector3.right * 100);

		if (Input.GetKey (KeyCode.Space))
			rigidbody.AddForce (Vector3.up * 70);



	
	}
}

to move the ball at the direction the character facing use transform.forward vector instead of Vector3.forward.

Another way is to use rigidbody.AddForceRelative(Vector3.forward * 100f) - it will cause the same result (applies force in forward direction of the character).

Also its better to use just one AddForce / AddForceRelative call:

rigidbody.AddForceRelative(Vector3.forward * 100f + Vector3.up * 70f)