private IEnumerator MovePieces(Vector3 destination, float timeToMove) { Vector3 startPosition = transform.position; bool reachedDestination = false; float elaspedTime = 0.0f; _isMoving = true; while (!reachedDestination) { if (Vector3.Distance(transform.position, destination) < 0.01f) { reachedDestination = true; if (_board != null) { _board.PlaceGamePiece(this, (int)destination.x, (int)destination.y); } break; } elaspedTime += Time.deltaTime; float t = GetInterpolationTime(_currentInterpolationType, elaspedTime, timeToMove); transform.position = Vector3.Lerp(startPosition, destination, t); yield return(null); } _isMoving = false; //_board.HighlightOnMatchesAt((int)destination.x,(int)destination.y); }