public void StoreObject(PhysicalObject newStoredObject) { //Debug.Log("objectStored"); storedObject = newStoredObject; this.saveVariables.SaveProperty(storedObject.MyRigidbody); Collider[] colliders = storedObject.GetComponentsInChildren <Collider>(); foreach (Collider col in colliders) { col.enabled = false; } storedObject.rightHand = null; storedObject.leftHand = null; storedObject.rightMyGrabPoser = null; storedObject.leftMyGrabPoser = null; storedObject.MyRigidbody.isKinematic = true; storedObject.MyRigidbody.useGravity = false; storedObject.transform.SetParent(this.transform); storedObject.transform.localPosition = Vector3.zero; storedObject.transform.rotation = transform.rotation; }
public void GrabStart(CustomHand hand) { //Debug.Log("Grabbing Item Holder"); Collider[] allcollliders = storedObject.GetComponentsInChildren <Collider>(); isInteractible = false; switch (storageType) { case StorageType.Endless: { storedObject.transform.SetParent(hand.GetComponentInParent <SteamVR_PlayArea>().transform); hand.SelectedGpibInteractible = storedObject; hand.GrabInteractible = storedObject; hand.grabPoser = storedObject.grabPoints[0]; this.saveVariables.LoadProperty(storedObject.MyRigidbody); storedObject.saveVariables.SaveProperty(storedObject.MyRigidbody); PhysicalObject newStoredObject = Instantiate(storedObject, transform.position, transform.rotation); switch (hand.handType) { case SteamVR_Input_Sources.LeftHand: storedObject.leftHand = hand; storedObject.leftMyGrabPoser = hand.grabPoser; break; case SteamVR_Input_Sources.RightHand: storedObject.rightHand = hand; storedObject.rightMyGrabPoser = hand.grabPoser; break; default: Debug.Log(" input source not recognized"); break; } foreach (Collider col in allcollliders) { if (!col.GetComponentInParent <Bullet>()) { col.enabled = true; } else { //Debug.Log(col.name); col.enabled = false; } } //storedObject = null; StoreObject(newStoredObject); break; } case StorageType.Limited: { storedObject.transform.SetParent(hand.GetComponentInParent <SteamVR_PlayArea>().transform); hand.SelectedGpibInteractible = storedObject; hand.GrabInteractible = storedObject; hand.grabPoser = storedObject.grabPoints[0]; this.saveVariables.LoadProperty(storedObject.MyRigidbody); storedObject.saveVariables.SaveProperty(storedObject.MyRigidbody); switch (hand.handType) { case SteamVR_Input_Sources.LeftHand: storedObject.leftHand = hand; storedObject.leftMyGrabPoser = hand.grabPoser; break; case SteamVR_Input_Sources.RightHand: storedObject.rightHand = hand; storedObject.rightMyGrabPoser = hand.grabPoser; break; default: Debug.Log(" input source not recognized"); break; } foreach (Collider col in allcollliders) { if (!col.GetComponentInParent <Bullet>()) { col.enabled = true; } else { Debug.Log(col.name); col.enabled = false; } } storedObject = null; break; } case StorageType.Magnetic: storedObject.transform.SetParent(hand.GetComponentInParent <SteamVR_PlayArea>().transform); hand.SelectedGpibInteractible = storedObject; hand.GrabInteractible = storedObject; hand.grabPoser = storedObject.grabPoints[0]; this.saveVariables.LoadProperty(storedObject.MyRigidbody); storedObject.saveVariables.SaveProperty(storedObject.MyRigidbody); switch (hand.handType) { case SteamVR_Input_Sources.LeftHand: storedObject.leftHand = hand; storedObject.leftMyGrabPoser = hand.grabPoser; break; case SteamVR_Input_Sources.RightHand: storedObject.rightHand = hand; storedObject.rightMyGrabPoser = hand.grabPoser; break; default: Debug.Log(" input source not recognized"); break; } foreach (Collider col in allcollliders) { if (!col.GetComponentInParent <Bullet>()) { col.enabled = true; } else { //Debug.Log(col.name); col.enabled = false; } } // when released snaps back to holster break; } }