IEnumerator fullSort() { yield return(new WaitForSeconds(time)); for (int j = sortItems.Count - 1; j > 0; j--) { for (int i = 0; i < j; i++) { sortItems[i].setColor(Color.green); sortItems[i + 1].setColor(Color.green); if (sortItems[i].size > sortItems[i + 1].size) { BubbleSortItem temp = sortItems[i]; sortItems[i] = sortItems[i + 1]; sortItems[i + 1] = temp; //Animation Stuff sortItems[i].move(i, time, 1); sortItems[i + 1].move(i + 1, time, -1); } yield return(new WaitForSeconds(time)); sortItems[i].setColor(objectColor); sortItems[i + 1].setColor(objectColor); } } }
void Awake() { sortItems = Enumerable.Range(0, objectCount).Select((x, index) => { BubbleSortItem s = GameObject.Instantiate(objectToSort, transform).GetComponent <BubbleSortItem>(); //s.transform.Translate(0, 0, -20); s.move(index, 0, Random.Range(-2, 2)); objectColor = s.getColor(); return(s); } ).ToList(); StartCoroutine(fullSort()); }
IEnumerator Swap(int index, BubbleSortItem leftBox, BubbleSortItem rightBox) { int leftIndex = index; int rightIndex = index + 1; var leftPos = leftBox.transform.position; var rightPos = rightBox.transform.position; leftBox.transform.DOMove(rightPos, tweenTime).SetEase(easeType); yield return(rightBox.transform.DOMove(leftPos, tweenTime).SetEase(easeType).WaitForCompletion()); var tempBox = items[leftIndex]; items[leftIndex] = items[rightIndex]; items[rightIndex] = tempBox; }