/// <summary> /// Remove animation of checker. /// </summary> private void CompleteRemoveAnimation(CheckerVisual view, Vector3 stackPosition, int Id) { view.transform.DOKill(); view.transform.DOLocalMove(stackPosition, 0.2f).SetEase(Ease.InExpo); _checkersViews.Remove(Id); }
/// <summary> /// Board initialization. /// </summary> public void OnBoardPrepared(List <Square> squaresInitialPositions, List <Checker> checkersInitialPositions) { _isBoardPreparing = true; InitCheckersStacks(); _squareSize = squaresInitialPositions.Max(square => square.Position.Y) + 1; int blackCounter = 0, whiteCounter = 0; foreach (var square in squaresInitialPositions) { SquareVisual squareView; if (square.Color == SquareColor.White) { squareView = WhiteSquares[whiteCounter]; whiteCounter++; } else { squareView = BlackSquares[blackCounter]; squareView.ShadowRenderer.enabled = false; blackCounter++; } squareView.transform.localPosition = SquareScreenPosition(square.Position); squareView.Init(square.Id); _squaresViews[square.Id] = squareView; if (square.Color == SquareColor.Black && _blackSquareColor == Color.clear) { _blackSquareColor = squareView.SquareMaterial.color; } } float intervalWhite = 0.15f, intervalBlack = 0.15f; int CheckerCounter = 0; foreach (var checker in checkersInitialPositions) { CheckerVisual checkerView = Checkers[CheckerCounter]; checkerView.SuperCheckerRenderer.enabled = false; if (checker.Color == CheckerColor.White) { checkerView.CheckerRenderer.material = new Material(_whiteCheckerMaterial); //(_choosenCheckerColor == CheckerColor.White) ? new Material(_whiteCheckerMaterial) : new Material(_blackCheckerMaterial); checkerView.transform.localPosition = new Vector3(_startPositionForWhite.position.x, _startPositionForWhite.position.y + intervalWhite, _startPositionForWhite.position.z); intervalWhite += 0.15f; } else { checkerView.CheckerRenderer.material = new Material(_blackCheckerMaterial); //(_choosenCheckerColor == CheckerColor.Black) ? new Material(_whiteCheckerMaterial) : new Material(_blackCheckerMaterial); checkerView.transform.localPosition = new Vector3(_startPositionForBlack.position.x, _startPositionForBlack.position.y + intervalBlack, _startPositionForBlack.position.z); intervalBlack += 0.15f; } CheckerCounter++; checkerView.Init(checker.Id); _checkersViews[checker.Id] = checkerView; checkerView.CheckerCollider.enabled = true; } StartCoroutine(StartAnimation(checkersInitialPositions)); }