Pick and drop object - collider

Hello.

Could anyone tell me how to collide picked object with terrain? I want to “block” camera when object would go away the map.
How can i fix that?
Its possible to throw picked object?

using UnityEngine; using System.Collections;

public class PickupObject : MonoBehaviour {
GameObject mainCamera;
bool carrying;
GameObject carriedObject;
public float distance;
public float smooth;
// Use this for initialization
void Start () {
mainCamera = GameObject.FindWithTag(“MainCamera”);
}

// Update is called once per frame
void Update () {
if(carrying) {
carry(carriedObject);
checkDrop();
//rotateObject();
} else {
pickup();
}
}

void rotateObject() {
carriedObject.transform.Rotate(5,10,15);
}

void carry(GameObject o) {
o.transform.position = Vector3.Lerp (o.transform.position, mainCamera.transform.position + mainCamera.transform.forward * distance, Time.deltaTime * smooth);
}

void pickup() {
if(Input.GetKeyDown (KeyCode.E)) {
int x = Screen.width / 2;
int y = Screen.height / 2;

Ray ray = mainCamera.camera.ScreenPointToRay(new Vector3(x,y));
RaycastHit hit;
if(Physics.Raycast(ray, out hit)) {
Pickupable p = hit.collider.GetComponent();
if(p != null) {
carrying = true;
carriedObject = p.gameObject;
p.gameObject.rigidbody.isKinematic = true;

}
}
}
}

void checkDrop() {
if(Input.GetKeyDown (KeyCode.E)) {
dropObject();
}
}

void dropObject() {
carrying = false;
carriedObject.gameObject.rigidbody.isKinematic = false;
carriedObject = null;
}
}

Ya look at for throwing the object you collected and destroyed.

also make a prefab of that object that your throwing.

The block part I don’t understand your question explain more detail if you want help. Thanks.

Fyi please use tags make it easier to read your code. Check the sticky to know how.