bool CurrentHelperIsStillUnderCursor() { foreach (RaycastResult h in LevelBuilder.inst.objectsHit) { UIHoverHelp uh = h.gameObject.GetComponent <UIHoverHelp>(); if (uh && uh == currentHelper) { return(true); } } return(false); }
void Init() { if (initiated) { return; } initiated = true; uib = GetComponent <LevelBuilderUIButton>(); b = GetComponent <Button>(); hh = GetComponent <UIHoverHelp>(); hhOriginalTitle = hh.title; hhOriginalDescription = hh.description; if (!hh) { hh = gameObject.AddComponent <UIHoverHelp>(); hh.title = ""; hh.description = ""; } if (itemLevel > 1) { LockItem(); } }
void Update() { // killtimer is the single most ugliest thing I've ever written // I wrote it because I don't understand how this hover helper bullshit i wrote works and I don't feel like relearning // this is to solve the issue of mouseleave not firing after a hoverhelper was executed on a ui element that was then destroyed, causing the hoverhelper to linger if (hoverShowing) { killTimer -= Time.deltaTime; if (killTimer < 0) { // Debug.Log("killtimer 0"); if (currentHelper != null) { foreach (RaycastResult rr in LevelBuilder.inst.objectsHit) { UIHoverHelp hh = rr.gameObject.GetComponent <UIHoverHelp>(); if (hh == currentHelper) { killTimer = 1.2f; // Debug.Log("found 0:"+hh); } } } if (killTimer < 0 && CurrentHelperIsStillUnderCursor()) { // if it wasn't reset by virtue of the fact we were still hovering over the same one.... HideHoverHelp(); } } } float dt = Time.unscaledDeltaTime; fadeTimer -= dt; if (fading && fadeTimer < 0) { float fadeSpeed = 10f; Color boardColor = Color.Lerp(fadeImages[0].color, GameConfig.juneYellow, dt * fadeSpeed); Color textColor = Color.Lerp(fadeText[0].color, GameConfig.darkGray, dt * fadeSpeed); Color backgroundColor = Color.Lerp(fadeBackgrounds[0].color, Color.black, dt * fadeSpeed); foreach (Image im in fadeImages) { im.color = boardColor; } foreach (Text t in fadeText) { t.color = textColor; } foreach (Image im in fadeBackgrounds) { im.color = backgroundColor; } if (boardColor.a > 0.98f) { foreach (Image im in fadeImages) { im.color = GameConfig.juneYellow; } foreach (Text t in fadeText) { t.color = GameConfig.darkGray; } // // commented Debug.Log("finished fading."); fading = false; } } if (smoothMoveHelperFocus) { float lerpSpeed = 6f; hoverParent.transform.position = Vector3.Lerp(hoverParent.transform.position, targetHoverTransform.position, dt * lerpSpeed); float deltaP = Vector3.SqrMagnitude(hoverParent.transform.position - targetHoverTransform.position); if (deltaP > 1.4f) { speechBubbleGraphicParent.SetActive(false); } else { // if (groupIndex < groups.Count && instructionsIndex < groups[groupIndex].instructions.Count) ResizeInputRestrictionPlane(); hoverParent.transform.position = targetHoverTransform.position; speechBubbleGraphicParent.SetActive(true); FadeIn(0f); smoothMoveHelperFocus = false; TutorialManager.inst.currentTutorial.ResizeInputRestrictionPlane(); } } }