KillingGame.CrimeScene.CrimeObject.ChangeSprite C# (CSharp) Method

ChangeSprite() private method

private ChangeSprite ( Sprite newSprite ) : IEnumerator
newSprite UnityEngine.Sprite
return IEnumerator
        IEnumerator ChangeSprite(Sprite newSprite)
        {
            Collider2D coll = gameObject.GetComponent<Collider2D>();
            if (coll != null)
                Destroy(coll);

            GameObject tempSpritor = CrimeManager.Instance.GetTempSpritor();
            SpriteRenderer thisRenderer = GetComponent<SpriteRenderer>();
            SpriteRenderer tempRenderer = tempSpritor.GetComponent<SpriteRenderer>();
            tempRenderer.sprite = _baseSprite;

            float timer = 0;

            while (timer <= 1)
            {
                thisRenderer.sprite = newSprite;
                thisRenderer.color = new Color(1, 1, 1, timer);
                tempRenderer.color = new Color(1, 1, 1, 1 - timer);
                timer += Time.deltaTime;
                yield return null;
            }

            _baseSprite = newSprite;
            thisRenderer.color = new Color(1, 1, 1, 1);
            tempSpritor.SetActive(false);

            gameObject.AddComponent<PolygonCollider2D>();
            yield break;
        }