public void GenerateSilhouetteObjects() { for (int i = 0; i < childCount; i++) { GameObject itemObject = control.brokenObjs[i]; components.Add(itemObject.AddComponent <ItemComponent>()); components[i].meshRenderer = itemObject.GetComponent <MeshRenderer>(); components[i].componentId = i + 1; if (silCount > 0 && (Random.value < silChance || (childCount - 1 - i) <= silCount)) { silCount--; components[i].SetState(EItemState.BROKEN); ItemComponent newComp = Instantiate(components[i], transform); newComp.SetState(EItemState.SILHOUETTE); newComp.transform.position = components[i].transform.position; newComp.transform.rotation = components[i].transform.rotation; components[i].transform.DOMove(control.placmeents[i].transform.position, .8f); components[i].transform.parent = null; components[i].SnapComponent = newComp; } else { components[i].SetState(EItemState.FIXED); } } }