public IEnumerator transExpression(Sprite sprite, float speed, bool smooth)
    {
        for (int i = 0; i < renderers.allExpressions.Count; i++)
        {
            Image img = renderers.allExpressions[i];
            if (img.sprite == sprite)
            {
                renderers.expression.sprite = sprite;
                break;
            }
        }

        if (renderers.expression.sprite != sprite)
        {
            Image image = GameObject.Instantiate(renderers.expression.gameObject, renderers.expression.transform.parent).GetComponent <Image>();
            image.sprite = sprite;
            renderers.allExpressions.Add(image);
            renderers.expression = image;
            image.color          = GlobalFuncsDialog.setAlpha(image.color, 0f);
        }

        while (GlobalFuncsDialog.TransitionImages(ref renderers.expression, ref renderers.allExpressions, speed, smooth))
        {
            yield return(new WaitForEndOfFrame());
        }

        StopTransitionExpression();
    }
        IEnumerator Transitioning(Texture texture, float speed, bool smooth, bool loopIfMovie)
        {
            if (texture != null)
            {
                for (int i = 0; i < allImages.Count; i++)
                {
                    RawImage img = allImages[i];
                    if (img.texture == texture)
                    {
                        activeImage = img;
                        break;
                    }
                }

                if (activeImage == null || activeImage.texture != texture)
                {
                    createNewActiveImage();
                    activeImage.texture = texture;
                    activeImage.color   = GlobalFuncsDialog.setAlpha(activeImage.color, 0f);

                    MovieTexture mv = texture as MovieTexture;

                    if (mv != null)
                    {
                        mv.loop = loopIfMovie;
                        mv.Play();
                    }
                }
            }
            else
            {
                activeImage = null;
            }

            while (GlobalFuncsDialog.TransitionRawImages(ref activeImage, ref allImages, speed, smooth))
            {
                yield return(new WaitForEndOfFrame());
            }

            stopTransitioning();
        }
        public void setTexture(Texture texture, bool loopMovie = true)
        {
            if (activeImage != null && activeImage.texture != null)
            {
                MovieTexture mv = texture as MovieTexture;

                if (mv != null)
                {
                    mv.Stop();
                }
            }

            if (texture != null)
            {
                if (activeImage == null)
                {
                    createNewActiveImage();
                }


                activeImage.texture = texture;
                activeImage.color   = GlobalFuncsDialog.setAlpha(activeImage.color, 1f);

                MovieTexture mv = texture as MovieTexture;

                if (mv != null)
                {
                    mv.loop = loopMovie;
                    mv.Play();
                }
            }
            else
            {
                if (activeImage != null)
                {
                    allImages.Remove(activeImage);
                    GameObject.DestroyImmediate(activeImage.gameObject);
                    activeImage = null;
                }
            }
        }