public GameObject Generate() { // Create objects grouped by "Generated Objects" GameObject. GameObject parent_object = new GameObject("Generated Objects"); // Create the object under same parent as this script. parent_object.transform.parent = gameObject.transform.parent; // Create the objects with randomized position and scale. for (int i = 0; i <= count; ++i) { GameObject instantiated_obj = Instantiate(object_to_instantiate) as GameObject; //instantiated_obj.transform.position = new Vector3(Random.Range(-pos_range, pos_range), // Random.Range(-pos_range, pos_range), // Random.Range(-pos_range, pos_range)); instantiated_obj.transform.position = new Vector3(RandomFromDistribution.RandomRangeNormalDistribution(-pos_range, pos_range, RandomFromDistribution.ConfidenceLevel_e._999), 0, RandomFromDistribution.RandomRangeNormalDistribution(-pos_range, pos_range, RandomFromDistribution.ConfidenceLevel_e._999)); float scale; switch (size_range_type) { case SizeRangeType_e.Uniform: scale = Random.Range(min_size, max_size); break; case SizeRangeType_e.LinearRight: scale = RandomFromDistribution.RandomRangeLinear(min_size, max_size, 1.0f); break; case SizeRangeType_e.LinearLeft: scale = RandomFromDistribution.RandomRangeLinear(min_size, max_size, -1.0f); break; case SizeRangeType_e.Normal: scale = RandomFromDistribution.RandomRangeNormalDistribution(min_size, max_size, RandomFromDistribution.ConfidenceLevel_e._999); break; case SizeRangeType_e.CurveRight: scale = RandomFromDistribution.RandomRangeSlope(min_size, max_size, 10.0f, RandomFromDistribution.Direction_e.Right); break; case SizeRangeType_e.CurveLeft: scale = RandomFromDistribution.RandomRangeSlope(min_size, max_size, 10.0f, RandomFromDistribution.Direction_e.Left); break; default: scale = Random.Range(min_size, max_size); break; } instantiated_obj.transform.localScale = new Vector3(scale, scale, scale); instantiated_obj.transform.parent = parent_object.transform; } return(parent_object); }
protected override float GetRandomNumber(float min, float max) { return(RandomFromDistribution.RandomRangeSlope(min, max, skew, direction)); }