private GameObject showTooltip(TutorialTooltip tooltip, RectTransform target, Vector2 offset, bool fullScreenClose)
        {
            if (currentTooltip != null)
            {
                currentTooltip.GetComponent <TutorialTooltip>().Hide();
            }
            Vector2 vector = Vector2.zero;

            if (target != null)
            {
                vector = new Vector2(target.position.x, target.position.y);
                Canvas componentInParent = target.GetComponentInParent <Canvas>();
                if (componentInParent.renderMode == RenderMode.ScreenSpaceCamera)
                {
                    vector = RectTransformUtility.WorldToScreenPoint(componentInParent.worldCamera, vector);
                }
            }
            CanvasScalerExt component = GetComponentInParent <Canvas>().GetComponent <CanvasScalerExt>();
            Vector2         vector2   = new Vector2(component.ReferenceResolutionY / (float)Screen.height, component.ReferenceResolutionY / (float)Screen.height);

            vector2 *= 1f / component.ScaleModifier;
            vector   = new Vector2((vector.x + offset.x) * vector2.x, (vector.y + offset.y) * vector2.y);
            if (tooltip == null)
            {
                GameObject gameObject = Object.Instantiate(tooltipPrefab);
                tooltip = gameObject.GetComponent <TutorialTooltip>();
            }
            tooltip.transform.SetParent(base.transform, worldPositionStays: false);
            tooltip.SetPosition(vector);
            tooltip.SetDefaultTextPrefab(defaultTextPrefab);
            tooltip.Show();
            currentTooltip = tooltip.gameObject;
            FullScreenButton.SetActive(fullScreenClose);
            Service.Get <EventDispatcher>().DispatchEvent(new TutorialUIEvents.OnTooltipCreated(tooltip));
            return(tooltip.gameObject);
        }