Day: August 30, 2017

  • Stopping the StartCoroutine with blinking function

    The solution may seem simple but it took me a while to figure it out so I thought I’d note it here using a blinking function. public IEnumerator animateTint(GameObject obj,Color newColour,float speed = 2){         Color originalColor = newColour;         Color targetColor = newColour;         Color defaultBtnColor = new Color();     ColorUtility.TryParseHtmlString (btnColor, out defaultBtnColor);     while (obj.GetComponent<Renderer> ().material.color != newColour) {         Material objMat = obj.GetComponent<Renderer> ().material;         Color curColour = objMat.color;         if(closeEnough(curColour.r,targetColor.r) && closeEnough(curColour.g,targetColor.g) && closeEnough(curColour.b,targetColor.b) ){             //objMat.color = newColour;             print (“change tint “+targetColor);             if(targetColor == newColour){                 targetColor = defaultBtnColor;             }else{                 yield return StartCoroutine(CoroutineUtil.WaitForRealSeconds(1)); //2                 targetColor = newColour;             }             //yield break;             }         buttonCode btnCode = obj.transform.parent.GetComponent<buttonCode> ();              if(btnCode.isBlinking){         objMat.color = Color.Lerp(curColour,targetColor, speed * Time.deltaTime);         }else{                 objMat.color = Color.white;             yield return null;         }         //print (“tinting “+curColour);         yield return null;…