void SetTooltip(Tooltip _tooltip) { if (_tooltip == null || currentTooltip != null) { return; } hasTooltipOn = true; currentTooltip = TooltipManager.Instance.GetNewTooltip(); currentTooltip.transform.SetParent(tooltipParent, false); TooltipDisplay tooltipDisplay = currentTooltip.GetComponent <TooltipDisplay>(); tooltipDisplay.parentHoverElement = this; tooltipDisplay.SetTooltip(_tooltip); tooltipDisplay.AlignPosition(); Canvas.ForceUpdateCanvases(); // Update Canvas and VerticalLayoutGroup for correct Tooltip size tooltipDisplay.GetComponent <VerticalLayoutGroup>().enabled = false; tooltipDisplay.GetComponent <VerticalLayoutGroup>().enabled = true; if (TooltipManager.Instance.settings.useHoverTimerToLock) { coroutine = StartCoroutine(StartTooltipLocking(TooltipManager.Instance.settings.hoverTimeToLock)); } }
public void RemoveTooltip(GameObject _tooltip) { if (_tooltip == null) { return; } _tooltip.transform.SetParent(tooltipStorage, false); TooltipDisplay tooltipDisplay = _tooltip.GetComponent <TooltipDisplay>(); tooltipDisplay.SetDisplayOff(); activeTooltips.Remove(_tooltip); }
/// <summary> /// Returns a GameObject which is a Tooltip from the Pool or creates a new one /// </summary> /// <returns></returns> public GameObject GetNewTooltip() { foreach (GameObject tooltip in tooltips) { TooltipDisplay display = tooltip.GetComponent <TooltipDisplay>(); if (!display.isInUse) { display.isInUse = true; activeTooltips.Add(tooltip); tooltip.GetComponent <TooltipDisplay>().isInUse = true; return(tooltip); } } GameObject newTooltip = Instantiate(tooltipPrefab, tooltipStorage) as GameObject; tooltips.Add(newTooltip); activeTooltips.Add(newTooltip); newTooltip.GetComponent <TooltipDisplay>().isInUse = true; return(newTooltip); }
public void RemoveAllTooltips() // TODO Base Hoverelement reset (Done?) { GameObject[] activeTooltipArray = activeTooltips.ToArray(); for (int i = activeTooltipArray.Length - 1; i >= 0; i--) { GameObject tooltip = activeTooltipArray[i]; tooltip.transform.SetParent(tooltipStorage, false); TooltipDisplay tooltipDisplay = tooltip.GetComponent <TooltipDisplay>(); tooltipDisplay.hoverElement.RemoveTooltip(); tooltipDisplay.isFixed = false; tooltipDisplay.isInUse = false; } if (baseActiveHoverElement != null) { baseActiveHoverElement.RemoveTooltip(); baseActiveHoverElement = null; } activeTooltips = new List <GameObject>(); }