生成したPrefabが、坂道を上っていくように、スクリプトを作成してみましょう。
Sphereが斜面を転がらず、頂上までずっと上って動いていきます。

関連記事:
着地すれば前進移動する
オブジェクトに触れていれば動く
ジャンプで壁に触れると引っ付く
触れている相手に一定間隔で力を加える
坂道を上り続けるスクリプト
Planeを作成し、簡単な坂道をつくります。

Sphereを作成して、リジッドボディを追加します。

SphereMove.csを作成し、Sphereに追加します。

SphereMove.csを記述します。
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41  | 
						using System.Collections; using System.Collections.Generic; using UnityEngine; public class SphereMove : MonoBehaviour {     private float speed = 10.0f;     private bool isGround;     private Rigidbody rb;     void Start()     {         rb = gameObject.GetComponent<Rigidbody>();     }     void Update()     {         if(isGround)         {             transform.Translate(0, 0, speed * Time.deltaTime);         }     }     void OnCollisionEnter(Collision other)     {         if(other.gameObject.name == "Plane")         {             isGround = true;             rb.isKinematic = true;         }     }     void OnCollisionExit(Collision other)     {         if(other.gameObject.name == "Plane")         {             isGround = false;             rb.isKinematic = false;         }     } }  | 
					
Sphereをプロジェクトビューにドラッグ&ドロップし、Prefab化しましょう。

Sphereの元データは削除します。

ボール出現のスクリプト
続いて、Prefabを生成するスクリプトを作りましょう。
空のオブジェクトを作成します。
BallDrop.csを作成し、GameObject(空のオブジェクト)に追加します。

BallDrop.csを記述します。
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16  | 
						using System.Collections; using System.Collections.Generic; using UnityEngine; public class BallDrop : MonoBehaviour {     public GameObject ball;     void Update()     {         if (Input.GetMouseButtonDown(0))         {             Instantiate(ball,new Vector3(0,5,0),Quaternion.identity);         }     } }  | 
					
Ballのフィールドに、Sphereのプレハブデータを入れます。

ゲームプレイして、画面をクリックしてみましょう。
Sphereが生成されて、坂道を上っていきます。

関連記事:
着地すれば前進移動する
オブジェクトに触れていれば動く
ジャンプで壁に触れると引っ付く
触れている相手に一定間隔で力を加える