Пример:
private GameObject pickedGO = null;
public float distance;
public void Update()
{
if(Input.GetMouseButtonDown(0))
{
if(pickedGO!= null)
{
Throw(pickedGO);
pickedGO = null;
}
else
{
var distToPickedObject = float.MaxValue;
GameObject picked = null;
foreach (var obj in GameObject.FindGameObjectsWithTag("tk"))
{
var dist = Vector3.Distance(obj.transform.position, transform.position);
if(dist<distToPickedObject)
{
distToPickedObject = dist;
picked = obj;
}
}
if (picked != null && distToPickedObject <= distance)
{
PickUp(picked);
pickedGO = picked;
}
}
}
}
функции Throw и PickUp надо создать самостоятельно для обработки бросания и подбора объекта соответственно.