public void Show(string tooltipText, RectTransform targetRect, TooltipAlignment alignment, TooltipSize size) { if (currentTooltip != null && currentTooltip.Item is TooltipItemNormal == false) { currentTooltip.Hide(); } TooltipNormal.ModifyContent(tooltipText); Show(TooltipNormal.Slot, targetRect, alignment, size); }
private void Show(TooltipSlot newTooltip, RectTransform targetRect, TooltipAlignment alignment, TooltipSize size) { currentTooltip = newTooltip; targetRect.GetWorldCorners(Corners); tooltipSizeSettings.Value(size).Modify(newTooltip); tooltipAlignmentSettings.Value(alignment).Modify(newTooltip, Corners); TooltipSpell.Slot.Show(targetRect); }
public void Show(SpellInfo tooltipSpell, RectTransform targetRect, TooltipAlignment alignment, TooltipSize size) { if (currentTooltip != null && currentTooltip.Item is TooltipItemSpell == false) { currentTooltip.Hide(); } TooltipSpell.ModifyContent(tooltipSpell); Show(TooltipSpell.Slot, targetRect, alignment, size); }
/// <summary> /// Update the data of the tooltip with the provided source data. /// </summary> /// <param name="source">Tooltip object to pull the data from.</param> public void UpdateTooltip(Tooltip source) { if (header != null) { header.text = source.header; } if (body != null) { body.text = source.text; } if (icon != null) { icon.sprite = source.icon; icon.enabled = (source.icon != null); } followMouse = source.followMouse; alignment = source.alignment; target = source.GetComponent <RectTransform>(); if (source.offset == Vector2.zero) { offset = Vector2.zero; } else { if (alignment == TooltipAlignment.Default) { offset = (target != null) ? (target.position / 2f) - (Input.mousePosition / 2f) : Vector3.zero; } else if (alignment == TooltipAlignment.Above) { offset = new Vector2(0f, self.rect.height / 2f) + source.offset; } else if (alignment == TooltipAlignment.Below) { offset = new Vector2(0f, -self.rect.height / 2f) + source.offset; } else if (alignment == TooltipAlignment.Left) { offset = new Vector2(-self.rect.width / 2f, -self.rect.height / 2f) + source.offset; } else if (alignment == TooltipAlignment.Right) { offset = new Vector2(self.rect.width / 2f, -self.rect.height / 2f) + source.offset; } } }
/// <summary> /// Display a tooltip with specified paramaters for positioning. /// </summary> /// <param name="text">Body text of the tooltip</param> /// <param name="title">Header title of the tooltip</param> /// <param name="image">Icon sprite image of the tooltip, displayed next to the header</param> /// <param name="updatePosition">Should the position of the tooltip be updated to the mouse position per frame?</param> /// <param name="mouseOffset">Offset value from its origin point (mouse or object, depending on upatePosition)</param> /// <param name="alignmentPosition">Position alignment in relation to the origin point of the object</param> /// <param name="targetObject">Object to be displaying this tooltip on</param> public void ShowTooltip(string text, string title = "", Sprite image = null, bool updatePosition = false, Vector2 mouseOffset = new Vector2(), TooltipAlignment alignmentPosition = TooltipAlignment.Default, RectTransform targetObject = null) { if (header != null) { header.text = title; } if (body != null) { body.text = text; } if (icon != null) { icon.sprite = image; icon.enabled = (image != null); } followMouse = updatePosition; alignment = alignmentPosition; target = targetObject; if (alignment == TooltipAlignment.Default) { offset = (target != null) ? (target.position / 2f) - (Input.mousePosition / 2f) : Vector3.zero; } else if (alignment == TooltipAlignment.Above) { offset = new Vector2(0f, self.rect.height / 2f) + mouseOffset; } else if (alignment == TooltipAlignment.Below) { FlipOffset(ref mouseOffset); offset = new Vector2(0f, -self.rect.height / 2f) + mouseOffset; } else if (alignment == TooltipAlignment.Left) { FlipOffset(ref mouseOffset); offset = new Vector2(-self.rect.width / 2f, -self.rect.height / 2f) + mouseOffset; } else if (alignment == TooltipAlignment.Right) { offset = new Vector2(self.rect.width / 2f, -self.rect.height / 2f) + mouseOffset; } SetPosition(); gameObject.SetActive(true); gameObject.GetComponent <ContentSizeFitter>().SetLayoutVertical(); }