private bool _inSwarm = true; //is this bot currently part of the players swarm #endregion private void Start() { _rb = GetComponent <Rigidbody>(); _player = GameObject.FindGameObjectWithTag("Player").GetComponent <PlayerDrone>(); _player?.swarm.Add(gameObject); //Add this bot to the swarm _carrot = GameObject.FindGameObjectWithTag("Carrot").transform; headTexture.material.color = Color.HSVToRGB(Random.Range(0f, 1f), Random.Range(.2f, 1f), Random.Range(.5f, 1f)); InvokeRepeating(nameof(FlockingControl), 0, 1 / UpdateFrequency); }
private void GuardDroneFire() { foreach (GameObject go in guardDrones) { PlayerDrone drone = null; if (go.TryGetComponent(out drone)) { drone.Attack(); } } }
public void SpawnDrone() { guardDroneCount++; guardDrones.Add(Instantiate(guardDrone, ship.head.transform.position, Quaternion.identity, null)); for (int i = 0; i < guardDrones.Count; i++) { PlayerDrone atk = null; if (guardDrones[i].TryGetComponent(out atk)) { atk.side = i; } } AlignDrones(); }
public void AlignDrones() { foreach (GameObject go in guardDrones) { PlayerDrone drone = go.GetComponent <PlayerDrone>(); switch (drone.side) { case 0: drone.targetPosition = ship.head.transform.right + ship.head.transform.position; break; case 1: drone.targetPosition = ship.head.transform.up + ship.head.transform.position; break; case 2: drone.targetPosition = -ship.head.transform.right + ship.head.transform.position; break; } } }
public PlayerDroneMapUnit(Map map, PlayerDrone playerDrone, Vector movementOffset) : base(map, playerDrone, movementOffset) { this.playerDrone = playerDrone; }