Pickup and Throw

////////////Movement script:

#pragma strict
var moveSpeed = 0.2;

function Update () {

 Screen.lockCursor = true;

 Screen.lockCursor = false;

 Screen.showCursor = false;

 rigidbody.AddForce(5 * Physics.gravity);

 if (Input.GetButton ("w")){

  transform.Translate(Vector3.forward * moveSpeed/3);

 }

 if (Input.GetButton ("a")){

  transform.Translate(Vector3.left * moveSpeed/3);

 }

 if (Input.GetButton ("s")){

  transform.Translate(Vector3.back * moveSpeed/3);

 }

 if (Input.GetButton ("d")){

  transform.Translate(Vector3.right * moveSpeed/3);

 }

}

/////////////////Pickup script (on object):

#pragma strict

var refusethrow = false;

function OnTriggerEnter (other : Collider) {

 if (other.gameObject.tag != "player" && other.gameObject.tag != "pickto"){

  refusethrow = true;

 }
}

function OnTriggerExit (other : Collider) {

 if (other.gameObject.tag != "player" && other.gameObject.tag != "pickto"){

  refusethrow = false;

 }
}

////////////////Pickup script (on pickto):

#pragma strict
var objectPos : Vector3;

var objectRot : Quaternion;

var pickObj : GameObject;

var canpick = true;

var picking = false;

var guipick = false;

var pickref : GameObject;

function Start () {

pickref = GameObject.FindWithTag ("pickupref");

pickObj = pickref;

}

function Update () {

 var raycheck: Ray = Camera.main.ScreenPointToRay(Input.mousePosition);

var hitcheck: RaycastHit;

 if (Physics.Raycast(raycheck, hitcheck,10) && hitcheck.collider.gameObject.tag == "pickup"){

  guipick = true;

 }

 if (Physics.Raycast(raycheck, hitcheck) && hitcheck.collider.gameObject.tag != "pickup"){

  guipick = false;

 }

 objectPos = transform.position;

 objectRot = transform.rotation;

 if(Input.GetMouseButtonDown(0) && canpick){

  picking = true;

var ray: Ray =
Camera.main.ScreenPointToRay(Input.mousePosition);

var hit: RaycastHit;

  if (Physics.Raycast(ray, hit, 10) && hit.collider.gameObject.tag == "pickup"){

   pickObj = hit.collider.gameObject;

   hit.rigidbody.useGravity = false;

   hit.rigidbody.isKinematic = true;

   hit.collider.isTrigger = true;

   hit.transform.parent = gameObject.transform;

   hit.transform.position = objectPos;
 
   hit.transform.rotation = objectRot;

  }

 }

 if(Input.GetMouseButtonUp(0) && picking){

  picking = false;

  canpick = false;

 }

 if(Input.GetMouseButtonDown(0) && !canpick  && pickObj.GetComponent(pickedupobj).refusethrow != true){

  canpick = true;
 
  pickObj.rigidbody.useGravity = true;

  pickObj.rigidbody.isKinematic = false;

  pickObj.transform.parent = null;

  pickObj.collider.isTrigger = false;
 
  pickObj.rigidbody.AddForce (transform.forward * 8000);
 
  pickObj = pickref;

 }

 if(Input.GetMouseButtonDown(1) && !canpick  && pickObj.GetComponent(pickedupobj).refusethrow != true){

  canpick = true;
 
  pickObj.rigidbody.useGravity = true;

  pickObj.rigidbody.isKinematic = false;

  pickObj.transform.parent = null;

  pickObj.collider.isTrigger = false;
 
  pickObj = pickref;
 }

}

function OnGUI () {

 GUI.Label (Rect (Screen.width/2,Screen.height/2.1,Screen.width/2,Screen.height/2), "X");

 if (guipick && canpick){

  GUI.Label (Rect (Screen.width/2,Screen.height/2,Screen.width/2,Screen.height/2), "Pick Up");

 }
}