public void SpawnItems(int amount) { for (int i = 0; i < amount; i++) { DroppedItemScript droppedItemScript = Instantiate(itemPrefab, Vector2.zero, Quaternion.identity).GetComponent <DroppedItemScript>(); droppedItemScript.type = (ItemType)Random.Range(0, (int)ItemType.Total); droppedItemScript.UpdateSprite(); int newXPos = 0; int newYPos = 0; bool canSpawn = false; // ! Make sure pos doesn't have enemy / player for (int j = 0; j < 100; j++) { newXPos = Random.Range(0, (int)TileEngineScript.Instance.size.x); newYPos = Random.Range(0, (int)TileEngineScript.Instance.size.y); if (!IsPlayerPresent(newXPos, newYPos) && !IsItemPresent(newXPos, newYPos)) { canSpawn = true; break; } } if (!canSpawn) { continue; } // ! Set enemy pos droppedItemScript.xPos = newXPos; droppedItemScript.yPos = newYPos; droppedItemScript.transform.position = TileEngineScript.Instance.posMap[droppedItemScript.yPos, droppedItemScript.xPos]; // ! Save enemy in list itemList.Add(droppedItemScript); } }
void SpawnItem() { for (int i = 0; i < spawnPosRange.Length; i++) { for (int j = 0; j < TileManagerScript.instance.tileList.Count; j++) { if (TileManagerScript.instance.tileList[j].transform.position.x >= spawnPosRange[i].minX && TileManagerScript.instance.tileList[j].transform.position.x <= spawnPosRange[i].maxX) { if (TileManagerScript.instance.tileList[j].transform.position.y >= spawnPosRange[i].minY && TileManagerScript.instance.tileList[j].transform.position.y <= spawnPosRange[i].maxY) { if (TileManagerScript.instance.tileList[j].isAlive && !TileManagerScript.instance.tileList[j].hasItem) { Vector2 myPos = TileManagerScript.instance.tileList[j].transform.position; myPos.y += 1f; GameObject newItem = Instantiate(itemPrefab, myPos, Quaternion.identity) as GameObject; DroppedItemScript itemscript = newItem.GetComponent <DroppedItemScript>(); itemscript.rend = itemscript.GetComponent <SpriteRenderer>(); itemscript.type = (ItemType)Random.Range(0, (int)ItemType.Total); itemscript.parentTile = TileManagerScript.instance.tileList[j]; itemscript.rend.sprite = itemSprites[(int)itemscript.type]; itemscript.parentTile.hasItem = true; return; } } } } } }