IEnumerator OnBlocksLinked(List <Vector3Int> turns, GameObject block1, GameObject block2) { block1.GetComponent <BoxCollider2D>().enabled = false; block2.GetComponent <BoxCollider2D>().enabled = false; // Sound effect. AudioPlayer.Instance.PlaySFX(AudioPlayer.SFXName.Link); // Visual effect. block1.GetComponent <Block>().SetTransparency(0.5f); block2.GetComponent <Block>().SetTransparency(0.5f); List <Vector3> pointsOnLine = new List <Vector3>(); pointsOnLine.Add(block1.transform.position); turns.ForEach((Vector3Int turn) => { pointsOnLine.Add(ToPhysicalPosition(turn)); }); pointsOnLine.Add(block2.transform.position); LineDrawer.DrawLine(pointsOnLine); yield return(new WaitForSeconds(0.3f)); LineDrawer.ClearLine(); Destroy(block1); Destroy(block2); }