Ejemplo n.º 1
0
    private IEnumerator WaitForSnap(PieceTriggerData triggerData)
    {
        _pieceController.transform.SetParent(circleController.transform);
        yield return(_pieceController.StartSnapping(triggerData.Position, triggerData.Rotation));

        _lastIndex = triggerData.Index;
        if (_pieces[_lastIndex] == null)
        {
            _pieces[_lastIndex] = _pieceController;
        }
        else
        {
            UpdatePieceValue(_pieces[_lastIndex]);
            GivePieceToPool(_pieceController);
            _pieceController = _pieces[_lastIndex];
        }

        while (IsMergeExist(_lastIndex))
        {
            yield return(StartMerge(_lastIndex));

            yield return(new WaitForEndOfFrame());

            if (_mergeCoroutine != null)
            {
                StopCoroutine(_mergeCoroutine);
            }
        }

        OnSnapCompleted();
    }
Ejemplo n.º 2
0
 private void OnTriggerInvoke(PieceTriggerData triggerData)
 {
     StartCoroutine(WaitForSnap(triggerData));
 }