Example #1
0
 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;
 }
Example #2
0
    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;
        }
    }