コード例 #1
0
        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);
        }