public void ReleaseCurrentTool() { //Drop current tool if (GetComponent <VRTK_InteractGrab>().GetGrabbedObject() == null) { return; } HideUnpickedTools(); _lastTool = GetComponent <VRTK_InteractGrab>().GetGrabbedObject(); Debug.Log("About to release object: " + _lastTool + " on " + _instance.GetInstanceID()); GetComponent <VRTK_InteractTouch>().ForceStopTouching(); GetComponent <VRTK_InteractGrab>().ForceRelease(); _lastTool.SetActive(false); //Remove script switch (_mode) { case CurrentMode.Build: DestroyImmediate(GetComponent <BuildMode>()); break; case CurrentMode.Destroy: DestroyImmediate(GetComponent <DestroyMode>()); break; case CurrentMode.Paint: DestroyImmediate(GetComponent <PaintMode>()); break; } Debug.Log("Released object: " + _lastTool); }