//instantiate resource prefabs public void InitResource(int x, int y) { float perlinNoise = perlinMap[new Vector2Int(x, y)]; //float perlinNoiseL = perlinMap[new Vector2Int(x - 1, y)]; //float perlinNoiseR = perlinMap[new Vector2Int(x + 1, y)]; //float perlinNoiseB = perlinMap[new Vector2Int(x, y - 1)]; //float perlinNoiseT = perlinMap[new Vector2Int(x, y + 1)]; foreach (terrainProp item in terrainPropList) { if (perlinNoise > item.min && perlinNoise < item.max) { float treeRand = Random.Range(0f, 1f); float stoneRand = Random.Range(0f, 1f); float yTreeRand = Random.Range(0f, 1f); float slimeRand = Random.Range(0f, 1f); if (item.smooth == 0) { tilesManager.SetTileCollider(x, y); } if (treeRand < item.treeProb) { Transform tree = Instantiate(treePrefab[0], new Vector3(x * tilesManager.cellSize, y * tilesManager.cellSize, 0), Quaternion.identity); tree.SetParent(resourcesParent); tree.gameObject.GetComponent <SpriteRenderer>().sortingOrder = -y; resourcesMap.Add(new Vector2Int(x, y), tree); } else if (stoneRand < item.stoneProb) { int stoneIndex = Mathf.FloorToInt(Random.Range(0, stonePrefab.Length)); Transform stone = Instantiate(stonePrefab[stoneIndex], new Vector3(x * tilesManager.cellSize, y * tilesManager.cellSize, 0), Quaternion.identity); stone.SetParent(resourcesParent); stone.gameObject.GetComponent <SpriteRenderer>().sortingOrder = -y; resourcesMap.Add(new Vector2Int(x, y), stone); } else if (yTreeRand < item.yTreeProb) { Transform yTree = Instantiate(yTreePrefab[0], new Vector3(x * tilesManager.cellSize, y * tilesManager.cellSize, 0), Quaternion.identity); yTree.SetParent(resourcesParent); yTree.gameObject.GetComponent <SpriteRenderer>().sortingOrder = -y; resourcesMap.Add(new Vector2Int(x, y), yTree); } else if (slimeRand < item.slimeProb) { Transform slime = Instantiate(slimePrefab[0], new Vector3(x * tilesManager.cellSize, y * tilesManager.cellSize, 0), Quaternion.identity); slime.SetParent(resourcesParent); slime.gameObject.GetComponent <SpriteRenderer>().sortingOrder = -y; resourcesMap.Add(new Vector2Int(x, y), slime); } } } }