using System.Collections.Generic; using UnityEngine; public class RandomSpawnItems : MonoBehaviour { public PickUpItem prefabPositifItem; public PickUpItem prefabNegatifItem; public Vector2 minMaxItem; public int positifItemPrct; private List _listSpawn; private void Awake() { _listSpawn = new List(GetComponentsInChildren()); _listSpawn.Remove(base.transform); int total = (int)UnityEngine.Random.Range(minMaxItem.x, minMaxItem.y); int positif = (int)((float)total * (float)positifItemPrct / 100f); CreateItems(positif, prefabPositifItem); CreateItems(total - positif, prefabNegatifItem); } private void CreateItems(int nbr, PickUpItem prefab) { for (int i = 0; i < nbr; i++) { if (_listSpawn.Count < 1) { break; } int idx = UnityEngine.Random.Range(0, _listSpawn.Count); PickUpItem item = UnityEngine.Object.Instantiate(prefab, _listSpawn[idx]); if (item != null) { item.gameObject.name = prefab.name + i; item.specialPickupEnd = true; } _listSpawn.RemoveAt(idx); } } }