示例#1
0
 void Awake()
 {
     Instance = this;
     for (int i = 0; i < GenreCandyBAPoolList.Length; i++)
     {
         GenreCandyBAPoolList[i] = new Queue <GameObject>();//初始化队列
     }
 }
示例#2
0
 public void ReleaseAnimation()
 {
     if (CandyAnimator != null)
     {
         CandyBAPool.Enqueue(CandyAnimator.gameObject);
         CandyAnimator = null;
     }
     if (CandySpriteRenderer != null)
     {
         Destroy(CandySpriteRenderer.gameObject);
         CandySpriteRenderer = null;
     }
 }
示例#3
0
        public void Refresh()
        {
            //调整大小
            var stdSize = Mathf.Max(7, Grid.MaxSide);

// ReSharper disable PossibleLossOfFraction
            transform.localScale = new Vector3(100 * 8 / stdSize, 100 * 8 / stdSize, 1);
// ReSharper restore PossibleLossOfFraction

            if (_curShownGenre != Genre)
            {
                if (ArtContent != null)
                {
                    if (CandyAnimator)
                    {
                        CandyBAPool.Enqueue(CandyAnimator.gameObject);
                    }
                    else
                    {
                        Destroy(ArtContent);
                    }
                    ArtContent = null;
                }

                _curShownGenre = Genre;
            }

            if (ArtContent == null)
            {
                var go = CandyBAPool.Dequeue(Info);
                go.transform.parent = transform;
                go.transform.ResetTransform();
                ArtContent          = go;
                CandyAnimator       = go.GetComponent <Animator>();
                CandySpriteRenderer = go.GetComponent <SpriteRenderer>();
            }

            if (CandyAnimator != null)
            {
                Reset();

                if (Genre >= 0)
                {
                    if (Info.Type == Candy.CandyType.H)
                    {
                        CandyAnimator.SetTrigger("BecomeH");
                    }
                    else if (Info.Type == Candy.CandyType.V)
                    {
                        CandyAnimator.SetTrigger("BecomeV");
                    }
                    else if (Info.Type == Candy.CandyType.Bomb)
                    {
                        if (Candy.Fired)
                        {
                            CandyAnimator.SetTrigger("BecomeFiredBomb");
                        }
                        else
                        {
                            CandyAnimator.SetTrigger("BecomeBomb");
                        }
                    }
                }
            }

            if (CandySpriteRenderer)//如果是Item,则要更换Sprite
            {
                CandySpriteRenderer.sprite = CandyBAPool.GetSpriteForCandy(Info);
            }

            SetNextBlinkTime();
        }