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); } }
public override void Awake() { Instance = this; base.Awake(); }