MeteorDictionary GetAvailableMeteorSprites(float mass, MeteorDictionary meteors) { MeteorDictionary availableMeteors = new MeteorDictionary(); foreach (KeyValuePair <string, Meteor> met in meteors) { if (met.Value.GetMin() <= mass && met.Value.GetMax() >= mass) { availableMeteors.Add(met.Key, met.Value); } } return(availableMeteors); }
void GenerateArea(GameObject obj, GameObject parent, float x, float y, float length, int amount) { for (int i = 0; i < amount; i++) { float randX = UnityEngine.Random.Range(0, length); float randY = UnityEngine.Random.Range(0, length); GameObject newObj = Instantiate(obj, parent.transform); newObj.transform.localPosition = new Vector3(x + randX, y + randY); float mass = UnityEngine.Random.Range(1, 1000); newObj.GetComponent <SpaceObjectController>().massInput = mass; MeteorDictionary availableMeteors = GetAvailableMeteorSprites(mass, MeteorSprites); newObj.GetComponent <SpriteRenderer>().sprite = availableMeteors.ElementAt(UnityEngine.Random.Range(0, availableMeteors.Count)).Value.GetSprite(); Destroy(newObj.GetComponent <PolygonCollider2D>()); newObj.AddComponent <PolygonCollider2D>(); } }