public bool ReleaseObjectToPosition(Vector3 position) { bool releaseSuccessful = true; if (grabbedObject.CheckForValidDrop(position)) { state = States.None; grabbedObject.SetPosition(position); grabbedObject.PutDown(); grabbedObject = null; } else { // TODO failure reason, could not place at specified location releaseSuccessful = false; } gameObject.GetComponent <ICanGrab>().FinishedAction(releaseSuccessful); return(releaseSuccessful); }