public void Flicker(Vector3 position, float intensity, Color flareColor, float size = 1) { if (manager == null) { manager = GetComponent <PoolChildManager> (); } ImageChild image = (ImageChild)manager.GetAvailableChild(); //IEnumerator flicker = MaintainFlicker (flickerTransform, image); //StartCoroutine (flicker); flareColor = presets[0].NoiseColor(flareColor); float remainerIntensity = flareColor.grayscale + intensity - 1; if (remainerIntensity > 0) { image.SetSize(size + remainerIntensity); } flareColor *= new Color(intensity, intensity, intensity); image.SetPosition(Conversion.MetresToPixels(position)); image.SetColor(flareColor); }
IEnumerator MaintainFlicker(Transform source, ImageChild image) { /*IEnumerator minor = MinorNoise(ld); * StartCoroutine (minor); * IEnumerator major = MajorNoise(source, destination, ld); * StartCoroutine (major); * while (condition()) * { * ld.positions [0] = source.position; * ld.positions [ld.positions.Length - 1] = destination.position; * ld.Render (); * yield return null; * } * StopCoroutine (minor); * StopCoroutine (major); * ld.renderer.reserved = false;*/ while (true) { //image.SetPosition (Conversion.MetresToPixels (source.position)); //image.SetColor (fd.NoiseColor ()); yield return(new WaitForEndOfFrame()); } }