IEnumerator SlotIntoPlace(Vector2 startingPos, Vector2 endingPos) { float duration = 0.1f; float elapsedTime = 0; while (elapsedTime < duration) { transform.position = Vector2.Lerp(startingPos, endingPos, elapsedTime / duration); elapsedTime += Time.deltaTime; yield return(new WaitForEndOfFrame()); } // SoundManager.GetInstance().MakeTileSound(); transform.position = endingPos; GridBase gridBase = transform.parent.parent.parent.GetComponent <GridBase>(); gridBase.UpdateLastTile(this); int[] cell = gridBase.PosToGrid(endingPos); gridBase.UpdateGridVal(cell[0], cell[1], topVal, midVal, botVal); cell[1] = (8 - cell[1]) / 3; EventManager.GetInstance().PostNotification(EVENT_TYPE.PLACE_PIECE, this, cell); transform.tag = Constants.UNTAGGED; }