// Use this for initialization protected virtual void Start() { if (prefab == null) { // end early Debug.Log("Please assign a drone prefab."); return; } // instantiate the drones GameObject droneTemp; drones = new List <GameObject>(); for (int i = 0; i < droneCount; i++) { droneTemp = (GameObject)GameObject.Instantiate(prefab); DroneBehavior db = droneTemp.GetComponent <DroneBehavior>(); db.drones = this.drones; db.swarm = this; // spawn inside circle Vector2 pos = new Vector2(transform.position.x, transform.position.z) + Random.insideUnitCircle * spawnRadius; droneTemp.transform.position = new Vector3(pos.x, transform.position.y, pos.y); droneTemp.transform.parent = transform; drones.Add(droneTemp); } }
IEnumerator MakeEnemies() { for (int i = 0; i < 10; i++) { GameObject enemy = GameObject.CreatePrimitive(PrimitiveType.Cube); enemy.transform.position = spawnPoint.transform.position; EnemyBehaviorContext context; IEnemyBehaviour enemyBehavior; if (i < 5) { enemy.name = "Drone"; enemyBehavior = new DroneBehavior(Time.time, enemy, minX, maxX); enemy.GetComponent <MeshRenderer>().material.color = Color.blue; } else { enemy.name = "Fighter"; enemyBehavior = new FighterBehavior(Time.time, enemy, minX, maxX); enemy.GetComponent <MeshRenderer>().material.color = Color.red; } context = new EnemyBehaviorContext(enemyBehavior); enemyBehaviors.Add(context); yield return(new WaitForSeconds(1f)); } }
IEnumerator MakeEnemies() { for (int i = 0; i < 10; i++) { GameObject enemy = GameObject.CreatePrimitive(PrimitiveType.Cube); enemy.transform.position = spawnPoint.transform.position; EnemyBehaviorContext context; IEnemyBehaviour enemyBehavior; if (i < 5) { enemy.name = "Drone"; enemyBehavior = new DroneBehavior(Time.time, enemy, minX, maxX); enemy.GetComponent<MeshRenderer>().material.color = Color.blue; } else { enemy.name = "Fighter"; enemyBehavior = new FighterBehavior(Time.time, enemy, minX, maxX); enemy.GetComponent<MeshRenderer>().material.color = Color.red; } context = new EnemyBehaviorContext(enemyBehavior); enemyBehaviors.Add(context); yield return new WaitForSeconds(1f); } }
// Use this for initialization protected override void OnStart() { if (prefab == null) { Debug.Log("[" + Time.time + "]Please assign a drone prefab."); return; } // instantiate the drones GameObject droneTemp; drones = new List <GameObject>(); for (int i = 0; i < droneCount; i++) { droneTemp = (GameObject)GameObject.Instantiate(prefab); DroneBehavior db = droneTemp.GetComponent <DroneBehavior>(); db.drones = this.drones; db.swarm = this; // spawn inside circle Vector2 pos = new Vector2(transform.position.x, transform.position.z) + Random.insideUnitCircle * spawnRadius; droneTemp.transform.position = new Vector3(pos.x, transform.position.y, pos.y); droneTemp.transform.parent = transform; originalSteer = droneTemp.GetComponent <DroneBehavior>().maxSteer; drones.Add(droneTemp); } // Resgister listener depending on who you are if (gameObject.tag == "SwarmPlayer1") { Messenger.RegisterListener(new Listener("Hunted_insects", gameObject, "SelectInsectsToCreate")); } if (gameObject.tag == "SwarmPlayer2") { Messenger.RegisterListener(new Listener("Hunted_insects", gameObject, "SelectInsectsToCreate")); } if (gameObject.tag == "free_swarm") { Messenger.RegisterListener(new Listener("Close_to_swarm_player1", gameObject, "SelectHuntedInsects1")); Messenger.RegisterListener(new Listener("Close_to_swarm_player2", gameObject, "SelectHuntedInsects2")); Messenger.RegisterListener(new Listener("Away_from_swarm_player1", gameObject, "FreedHuntedInsects1")); Messenger.RegisterListener(new Listener("Away_from_swarm_player2", gameObject, "FreedHuntedInsects2")); Messenger.RegisterListener(new Listener("Insect_catched_player1", gameObject, "DesactivateInsect")); Messenger.RegisterListener(new Listener("Insect_catched_player2", gameObject, "DesactivateInsect")); } Messenger.RegisterListener(new Listener("Creature_created", gameObject, "UpdatePlayerListsNewCreature")); Messenger.RegisterListener(new Listener("Texture_changed", gameObject, "UpdatePlayerListsTexture")); Messenger.RegisterListener(new Listener("Insects_of_swarm", gameObject, "Return_insects")); }
/// <summary> /// Spawns a drone at the first position in the NavigationPath. /// </summary> /// <param name="navIndex">Index of NavigationPath, Color, and Speed to use for the underdrone.</param> public void SpawnDrone(int index) { // Create drone and set initial position, rotation, scale. DroneNavigationPath path = NavigationPaths[index].gameObject.GetComponent <DroneNavigationPath>(); GameObject drone = (GameObject)Instantiate(DronePrefab); drone.transform.parent = this.transform; drone.transform.position = path.NavigationPoints[0].position; drone.transform.LookAt(path.NavigationPoints[1].transform); drone.transform.localScale = new Vector3(0.72f, 0.72f, 0.72f); // Set drone's speed and navigation path. DroneBehavior behavior = drone.AddComponent <DroneBehavior>(); behavior.NavPath = NavigationPaths[index].gameObject; behavior.Speed = DroneSpeeds[index]; behavior.NavPathIndex = index; // Set drone's color. FriendlyDrone friendly = drone.GetComponentInChildren <Animator>().gameObject.AddComponent <FriendlyDrone>(); friendly.EmissiveColor = DroneColors[index]; }
void Awake() { Instance = this; }
void Awake() { switch (tag) { case "Enemy": drone = gameObject.GetComponent<DroneBehavior>(); boxCol = gameObject.GetComponent<BoxCollider>(); break; case "EnemyStructure": spawner = gameObject.GetComponent<SwarmSpawner>(); boxCol = GetComponent<BoxCollider>(); break; case "Soldier": soldier = GetComponent<Soldier>(); soldierManager = GameObject.FindObjectOfType<SoldierManager>(); break; default: break; } }