public void ClearDrag() { m_DragSlot = null; m_DragContainer = null; m_Dragging = false; }
void Update() { Vector2 mousePos = new Vector2(Input.mousePosition.x, Screen.height - Input.mousePosition.y); GUIItemContainer targetContainer = null; foreach (GUIItemContainer container in m_Containers) { if (container.enabled && container.rect.Contains(mousePos)) { targetContainer = container; break; } } if (targetContainer != m_HoverContainer) { if (m_HoverContainer == null) { //EVENT Hovered into a new container (targetContainer) } else { //EVENT Hovered out of container (m_HoverContainer) if (m_HoverSlot != null) { m_HoverContainer.OnHoverOut(m_HoverSlot); } if (targetContainer != null) { //EVENT Hovered into a new container (targetContainer) } } } m_HoverContainer = targetContainer; m_MouseDown = false; if (m_HoverContainer) { if (Input.GetMouseButtonDown(0)) { //bring this container to the front m_Containers.Remove(m_HoverContainer); m_Containers.Insert(0, m_HoverContainer); m_HoverContainer.OnMouseDown(m_HoverSlot); m_MouseDown = true; } else if (Input.GetMouseButton(0)) { m_MouseDown = true; } else if (Input.GetMouseButtonUp(0)) { m_HoverContainer.OnReleaseMouse(m_HoverSlot); } else if (Input.GetMouseButtonDown(1)) { m_HoverContainer.OnUse(m_HoverSlot); } m_HoverContainer.UpdateFromController(mousePos); } else { if (Input.GetMouseButtonUp(0)) { if (m_Dragging) m_DragContainer.OnReleaseMouse(null); } } }
public void RegisterContainer(GUIItemContainer container) { m_Containers.Add(container); }
public void UnregisterContainer(GUIItemContainer container) { m_Containers.Remove(container); }
public void Drag(GUIItemSlot slot, GUIItemContainer container) { m_DragSlot = slot; m_DragContainer = container; m_Dragging = true; }