コード例 #1
0
ファイル: DataManager.cs プロジェクト: validatesock/HaVRest
    public void Init()
    {
        mMomentos       = new List <GameObjectMomento>();
        mDataDictionary = new Dictionary <object, GameObjectMomento>();

        HVRItemFactory.LoadItems();
        StartCoroutine(TestFactoryEnumerator());
    }
コード例 #2
0
ファイル: DataManager.cs プロジェクト: validatesock/HaVRest
    private IEnumerator TestFactoryEnumerator()
    {
        while (!HVRItemFactory.IsFactoryInitialized)
        {
            yield return(null);
        }
        GameObject unused;

        HVRItemFactory.SpawnItem(ItemEnums.TestItem, Vector3.zero, default(Quaternion), Vector3.one, out unused, "Test Spawn Object");
    }
コード例 #3
0
ファイル: Backpack.cs プロジェクト: validatesock/HaVRest
    void SpawnTopObject(ItemEnums itemEnum)
    {
        GameObject instantiatedObj;

        HVRItemFactory.SpawnItem(itemEnum, Vector3.zero, default(Quaternion), Vector3.one, out instantiatedObj, "TopItem");
        //instantiatedObj.GetComponent<Rigidbody>().useGravity = false;
        instantiatedObj.GetComponent <Rigidbody>().isKinematic = true;
        instantiatedObj.GetComponent <Collider>().isTrigger    = true;
        instantiatedObj.transform.SetParent(mItemSackObject.transform.GetChild(0).GetChild(1).GetChild(12));
        instantiatedObj.transform.localPosition    = Vector3.zero;
        instantiatedObj.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
        mTopObject = instantiatedObj;
        //mTopObject.layer = 5;
    }
コード例 #4
0
 void DoTriggerReleasedLeft(object sender, ControllerInteractionEventArgs e)
 {
     if (mIsBagOnLeft)
     {
         SwitchModes();
     }
     else
     {
         if (mItemOverBagCollider != null)
         {
             GameObject item = mItemOverBagCollider.gameObject;
             GameManager.Instance.Player.BackPack.AddItemToInventory(item.GetComponent <ItemFactoryData>().ItemEnum);
             //Destroy(mItemOverBagCollider.gameObject);
             HVRItemFactory.DestroyObject(mItemOverBagCollider.gameObject);
         }
     }
 }
コード例 #5
0
ファイル: Backpack.cs プロジェクト: validatesock/HaVRest
    public void FocusOnSlot(int slot, bool isRefresh = false)
    {
        // Reset the material for the now unfocused slot
        if ((mPreviousMaterials != null) && (slot != mFocusedSlot) && (mFocusedPage == mCurrentPageNumbers[mCurrentPouchIndex]))
        {
            mInventorySlotItems[mFocusedSlot].GetComponent <MeshRenderer>().materials = mPreviousMaterials;
        }
        mPreviousMaterials = mInventorySlotItems[slot].GetComponent <MeshRenderer>().materials;

        Material[] newMaterials = new Material[mInventorySlotItems[slot].GetComponent <MeshRenderer>().materials.Length];
        newMaterials[0] = mRimLight;
        mInventorySlotItems[slot].GetComponent <MeshRenderer>().materials = newMaterials;
        if (isRefresh == true)
        {
            //Destroy(mTopObject);
            HVRItemFactory.DestroyObject(mTopObject);
        }
        SpawnTopObject(mInventorySlotItems[slot].GetComponent <ItemFactoryData>().ItemEnum);
        mFocusedSlot = slot;
        mFocusedPage = mCurrentPageNumbers[mCurrentPouchIndex];
    }
コード例 #6
0
ファイル: Backpack.cs プロジェクト: validatesock/HaVRest
    public void SpawnInventoryUI(bool destroyTopObject = false)
    {
        mItemSackObject.GetComponent <BagInteraction>().mIsBagOnLeft = mIsLeft;
        if (destroyTopObject)
        {
            HVRControllerManager.DestroyObject(mTopObject);
        }

        List <InventoryItem> inventoryItems         = mPouches[1].InventoryItems;
        List <InventoryItem> filteredInventoryItems = new List <InventoryItem>(inventoryItems);

        mInventorySlotItems = new List <GameObject>();
        FilterInventory(filteredInventoryItems);
        mLastFilteredInventoryCount = filteredInventoryItems.Count;
        if (mLastFilteredInventoryCount - (12 * (mCurrentPageNumbers[mCurrentPouchIndex] - 1)) <= mFocusedSlot)
        {
            mFocusedSlot = 0;
        }
        mSlotContainer = mItemSackObject.transform.GetChild(0).GetChild(1);
        for (int i = 12 * (mCurrentPageNumbers[mCurrentPouchIndex] - 1); i < 12 * mCurrentPageNumbers[mCurrentPouchIndex]; i++)
        {
            if (filteredInventoryItems.Count > i)
            {
                //GameObject instantiatedObj;
                //HVRItemFactory.SpawnItem(filteredInventoryItems[i].Id, Vector3.zero, default(Quaternion), new Vector3(0.35f, 0.35f, 0.35f), out instantiatedObj, "InventorySlotItem");
                object     obj             = GameObject.Instantiate(HVRItemFactory.GetItemPrefab(filteredInventoryItems[i].Id));
                GameObject instantiatedObj = (GameObject)obj;
                instantiatedObj.transform.localScale = new Vector3(0.35f, 0.35f, 0.35f);

                mInventorySlotItems.Add(instantiatedObj);
                Destroy(instantiatedObj.GetComponent <Rigidbody>());
                Destroy(instantiatedObj.GetComponent <VRTK_InteractableObject>());
                Destroy(instantiatedObj.GetComponent <Collider>());
                instantiatedObj.transform.SetParent(mSlotContainer.GetChild(i % 12));
                instantiatedObj.transform.localPosition    = Vector3.zero;
                instantiatedObj.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
                Animator itemFloatController = instantiatedObj.AddComponent <Animator>() as Animator;
                instantiatedObj.GetComponent <Animator>().runtimeAnimatorController = mItemFloatController;
                mSlotContainer.GetChild(i % 12).GetComponent <Collider>().enabled   = true;
                //itemFloatController.runtimeAnimatorController = mItemFloatController;
                mSlotContainer.GetChild(i % 12).GetChild(0).gameObject.SetActive(true);
                mSlotContainer.GetChild(i % 12).GetChild(0).gameObject.GetComponent <Text>().text = filteredInventoryItems[i].Quantity.ToString();
            }
            else
            {
                mSlotContainer.GetChild(i % 12).GetChild(0).gameObject.SetActive(false);
                mSlotContainer.GetChild(i % 12).GetComponent <Collider>().enabled = false;
            }
        }
        if (mCurrentPageNumbers[mCurrentPouchIndex] > 1)
        {
            mItemSackObject.transform.GetChild(0).GetChild(2).gameObject.SetActive(true);
        }
        else
        {
            mItemSackObject.transform.GetChild(0).GetChild(2).gameObject.SetActive(false);
        }
        if (filteredInventoryItems.Count > 12 * mCurrentPageNumbers[mCurrentPouchIndex])
        {
            mItemSackObject.transform.GetChild(0).GetChild(3).gameObject.SetActive(true);
        }
        else
        {
            mItemSackObject.transform.GetChild(0).GetChild(3).gameObject.SetActive(false);
        }
        if (filteredInventoryItems.Count > 0)
        {
            FocusOnSlot(mFocusedSlot);
        }

        if (mIsLeft)
        {
            HVRControllerManager.Instance.GetRightController().GetComponent <VRTK_InteractGrab>().ControllerGrabInteractableObject += new ObjectInteractEventHandler(DoControllerGrabInteractableObject);
        }
        else
        {
            HVRControllerManager.Instance.GetLeftController().GetComponent <VRTK_InteractGrab>().ControllerGrabInteractableObject += new ObjectInteractEventHandler(DoControllerGrabInteractableObject);
        }
    }