コード例 #1
0
        public void InvokeLootUI(List <Item> items)
        {
            this.gameObject.ActivateGO();

            foreach (Item item in items)
            {
                LootSlot slot = this._lootSlots.FirstOrDefault(_ => _.ItemObjectInSlot == null);
                if (slot == null)
                {
                    throw new Exception("Loot overflow! Maximum size reached!");
                }

                slot.InstantiateItemObject(ItemObject.Instantiate(item));
            }

            this.CheckTake();
        }
コード例 #2
0
        private void Start()
        {
            Messenger.AddListener(M.INV_CHANGED, this.CheckTake);

            this._buttonOK.AddAction(this.TakeItems);

            for (int i = 0; i < 12; i++)
            {
                LootSlot slot = Instantiate(this._slotPrfb, this._slotsParent.transform).GetComponent <LootSlot>();
                if (slot == null)
                {
                    throw new ArgumentNullException(nameof(slot));
                }

                slot.Loot = this;

                this._lootSlots.Add(slot);
            }

            this.gameObject.DeactivateGO();
            this._notEnoughSpaceMark.DeactivateGO();
        }
コード例 #3
0
        public void OnPointerClick(PointerEventData eventData)
        {
            PointerEventData pointerData = new PointerEventData(EventSystem.current)
            {
                pointerId = -1,
                position  = Input.mousePosition
            };

            List <RaycastResult> results = new List <RaycastResult>();

            EventSystem.current.RaycastAll(pointerData, results);

            foreach (RaycastResult result in results)
            {
                LootSlot lootSlot = result.gameObject.GetComponent <LootSlot>();
                if (lootSlot != null)
                {
                    lootSlot.OnPointerClick(eventData);
                    return;
                }
            }
        }