public void Init() { mMomentos = new List <GameObjectMomento>(); mDataDictionary = new Dictionary <object, GameObjectMomento>(); HVRItemFactory.LoadItems(); StartCoroutine(TestFactoryEnumerator()); }
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"); }
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; }
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); } } }
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]; }
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); } }