public SpecificSpot GetNextSpawn(Vector3 pos) { SpecificSpot playerSpawn = SpecificSpot.Start; if (pos != Vector3.zero)//valeur par default { var height = GameManager.instance.height; var width = GameManager.instance.height; if (pos.y >= 3 * height / 4) { playerSpawn = SpecificSpot.South; } if (pos.y <= height / 4) { playerSpawn = SpecificSpot.North; } if (pos.x >= 3 * width / 4) { playerSpawn = SpecificSpot.West; } if (pos.x <= width / 4) { playerSpawn = SpecificSpot.East; } } return(playerSpawn); }
private Vector3 getPositionPlayer(SpecificSpot playerSpawn) { Vector3 pos = new Vector3(); if (playerSpawn == SpecificSpot.North) { pos = new Vector3((width - 1) / 2 + 1f, height, 0f); } else if (playerSpawn == SpecificSpot.South) { pos = new Vector3((width - 1) / 2 + 1f, 0f, 0f); } else if (playerSpawn == SpecificSpot.East) { pos = new Vector3(width - 0.5f, (height - 1) / 2 + 1f, 0f); } else if (playerSpawn == SpecificSpot.West) { pos = new Vector3(0.5f, (height - 1) / 2 + 1f, 0f); } else if (playerSpawn == SpecificSpot.Start) { pos = new Vector3(0.25f, 0.25f, 0f); } return(pos); }
public void SetupRoom(RoomParam param, SpecificSpot playerSpawn) { roomObjects = new GameObject("RoomObjects").transform; roomUnits = new GameObject("RoomUnits").transform; roomUnits.SetParent(roomObjects); ground = GameObject.Find("Ground").GetComponent <Tilemap>(); wall = GameObject.Find("Wall").GetComponent <Tilemap>(); outerWall = GameObject.Find("OuterWall").GetComponent <Tilemap>(); width = GameManager.instance.width; height = GameManager.instance.height; Vector3 playerSpawnPosition = getPositionPlayer(playerSpawn); BoardSetup(param.groundTilesParam, param.outerWallTilesParam); LayoutTiles(param.wallTilesParam, wall); LayoutUnits(param.unitsParam); GameObject instance = Instantiate(player, playerSpawnPosition, Quaternion.identity); instance.transform.SendMessage("SetParam", GameManager.instance.playerParam, SendMessageOptions.DontRequireReceiver); instance.transform.SetParent(roomUnits); }