12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- using System;
- using System.Collections.Generic;
- using UnityEngine;
- [AddComponentMenu("NGUI/Examples/UI Item Storage")]
- public class UIItemStorage : MonoBehaviour
- {
- public List<InvGameItem> items
- {
- get
- {
- while (this.mItems.Count < this.maxItemCount)
- {
- this.mItems.Add(null);
- }
- return this.mItems;
- }
- }
- public InvGameItem GetItem(int slot)
- {
- return (slot >= this.items.Count) ? null : this.mItems[slot];
- }
- public InvGameItem Replace(int slot, InvGameItem item)
- {
- if (slot < this.maxItemCount)
- {
- InvGameItem result = this.items[slot];
- this.mItems[slot] = item;
- return result;
- }
- return item;
- }
- private void Start()
- {
- if (this.template != null)
- {
- int num = 0;
- Bounds bounds = default(Bounds);
- for (int i = 0; i < this.maxRows; i++)
- {
- for (int j = 0; j < this.maxColumns; j++)
- {
- GameObject gameObject = NGUITools.AddChild(base.gameObject, this.template);
- Transform transform = gameObject.transform;
- transform.localPosition = new Vector3((float)this.padding + ((float)j + 0.5f) * (float)this.spacing, (float)(-(float)this.padding) - ((float)i + 0.5f) * (float)this.spacing, 0f);
- UIStorageSlot component = gameObject.GetComponent<UIStorageSlot>();
- if (component != null)
- {
- component.storage = this;
- component.slot = num;
- }
- bounds.Encapsulate(new Vector3((float)this.padding * 2f + (float)((j + 1) * this.spacing), (float)(-(float)this.padding) * 2f - (float)((i + 1) * this.spacing), 0f));
- if (++num >= this.maxItemCount)
- {
- if (this.background != null)
- {
- this.background.transform.localScale = bounds.size;
- }
- return;
- }
- }
- }
- if (this.background != null)
- {
- this.background.transform.localScale = bounds.size;
- }
- }
- }
- public int maxItemCount = 8;
- public int maxRows = 4;
- public int maxColumns = 4;
- public GameObject template;
- public UIWidget background;
- public int spacing = 128;
- public int padding = 10;
- private List<InvGameItem> mItems = new List<InvGameItem>();
- }
|