public GameObject TryInstantiateGameObject(ItemGenerationProbabilityDataModel probabilityDataModel, LevelGenerationDataModel levelGenerationDataModel, GameObject container, bool isDeltaRegen = false) { GameObject instantiatedObject = null; var rnd = UnityEngine.Random.Range(0f, 1f); var probability = isDeltaRegen ? probabilityDataModel.RegenerateProbabilty : probabilityDataModel.Probability; //check luck to instantiate object in the map if (rnd < probability) { //get random variant var variantIndex = UnityEngine.Random.Range(0, probabilityDataModel.GameObjectVariants.Count); var gameObjectVariant = probabilityDataModel.GameObjectVariants[variantIndex]; //get random x position withing the map size var randomX = UnityEngine.Random.Range(levelGenerationDataModel.LeftEdge, levelGenerationDataModel.RightEdge); //instantiate game object in random x position instantiatedObject = Instantiate(probabilityDataModel.GameObjectVariants[variantIndex], new Vector3(randomX, gameObjectVariant.transform.position.y, gameObjectVariant.transform.position.z), Quaternion.identity, container.transform); var gameStaticObject = instantiatedObject.GetComponent <GameStaticObject>(); gameStaticObject.Type = probabilityDataModel.Type; } return(instantiatedObject); }
private GameObject TryCreateItem(ItemGenerationProbabilityDataModel probModel) { // Debug.Log("-- -- -- Trying the create item for this model: " + probModel.Type.ToString()); return(sideScrollMap.TryInstantiateGameObject(probModel, levelGenerationDataModel, objectsContainer, true)); }