public void Start() { playerCrafting.materialGainedEvent.AddListener(UpdateMaterialsText); playerCrafting.craftingLevelUpEvent.AddListener(UpdateCraftingLevel); playerCrafting.GetComponent <PersistanceManager>().persistantDataLoadedEvent.AddListener(Refresh); }
IEnumerator GenerateOres() { while (true) { if (numCurrentOres < MAX_ORES) { int oreType = GetOreType(0); Vector3 offset = new Vector3(Random.Range(-70, 70), Random.Range(-50, 50), 0); var newOre = Instantiate(ores[oreType], transform.position + offset, Quaternion.identity); newOre.transform.SetParent(transform); newOre.GetComponent <Button>().onClick.AddListener(() => { playerCrafting.MineOre(oreType); numCurrentOres--; Destroy(newOre.gameObject); }); numCurrentOres++; } float oreRateBonus = playerCrafting.GetComponent <PlayerStats>().GetOreRateMultiplier(); yield return(new WaitForSeconds(timeBetweenOres * 1f / (1 + oreRateBonus))); } }