private void SpawnEnemy() { Vector3 randomPositionInSpawnArea = new Vector3( Random.Range(spawnAreaBoxCollider.bounds.min.x, spawnAreaBoxCollider.bounds.max.x), 0, Random.Range(spawnAreaBoxCollider.bounds.min.z, spawnAreaBoxCollider.bounds.max.z)); Enemy newEnemy = Instantiate(enemyPrefab, randomPositionInSpawnArea, Quaternion.identity).GetComponent <Enemy>(); newEnemy.initEnemyTarget(goal, gameManager, idCounter++); newEnemy.transform.LookAt(goal.transform); spawnedEnemies.Add(newEnemy.id, newEnemy); int enemyLevel = DifficultySettings.singleton.getNewSpawnedEnemyLevel(); initEnemyStats(newEnemy, enemyLevel); SpawnedObject visualAtributes = calculateVisualAtributes(newEnemy, enemyLevel); newEnemy.init(visualAtributes); SpawnEnemyMsg msg = new SpawnEnemyMsg() { type = EnemyType.Soldier, details = visualAtributes }; NetworkServer.SendToAll((short)CustomProtocol.SpawnEnemyMsg, msg); }
private void handleEnemySpawnMsg(NetworkMessage msg) { SpawnEnemyMsg data = msg.ReadMessage <SpawnEnemyMsg>(); VisualObject enemy = Instantiate(typeToObjects[data.type], data.details.pos, Quaternion.identity, null).GetComponent <VisualObject>(); enemy.init(data.details); spawnedEnemies.Add(data.details.id, enemy); }