public void CreateTeam(AgentSensor sensor) { SetTeamLeader(this); FindTeamMembers(sensor); foreach (TeamController controller in teamMembers) { controller.SetTeamLeader(this); } }
public void SetUp() { _agentContainer = Substitute.For <IAgentContainer>(); _tangibleContainer = Substitute.For <ITangibleContainer>(); _eventContext = Substitute.For <IEventContext>(); _agent = Substitute.For <IAgent>(); _context = TestUtilities.BuildSubServiceContextWithServices(new Dictionary <string, object> { { "IAgentContainer", _agentContainer }, { "IEventContext", _eventContext }, { "ITangibleContainer", _tangibleContainer } }); _sensor = new AgentSensor(_context, _agent); }
public void SetNextTarget(GameObject agent, AgentController controller) { AgentSensor sense = controller.sensor; List <GameObject> enemies = sense.GetEnemies(); controller.shootTarget = ChooseTarget(agent, controller, enemies); controller.weapon.SetTarget(controller.shootTarget); GameObject aiChild = TD_Utility.Utility.GetChildByTag(agent, Constants.AITag); Face steering = TD_Utility.Utility.GetChildByTag(aiChild, Constants.SteeringTag).GetComponent <Face>(); KinematicController kin = aiChild.GetComponent <KinematicController>(); kin.SetAlternativeSteeringBehaviour(steering); kin.SetTarget(controller.shootTarget); kin.UseKinematic(true); }
private void FindTeamMembers(AgentSensor sensor) { if (teamMembers.Count != 0) { ResetTeam(); } List <GameObject> allies = sensor.GetAllies(); foreach (GameObject go in allies) { GameObject child = TD_Utility.Utility.GetChildByTag(go, Constants.TeamTag); TeamController controller = child.GetComponent <TeamController>(); teamMembers.Add(controller); } }
public AIAgentController(Agent agent, AgentSensor sensor, AIBehaviourManager behaviourManager) : base(agent, sensor) { ClearBehaviour(); BehaviourManager = behaviourManager; Agent = agent; Sensor = sensor; if (behaviourManager != null) { SetBehaviour(behaviourManager.ChooseStrategy(agent)); } else { Debug.Log("Behaviour manager is null!"); } }
//returns true if a team was found public bool LookForTeam(AgentSensor sensor) { //1. Find all nearby allies FindTeamMembers(sensor); //2. check if any ally is already a team leader or is in a team foreach (TeamController controller in teamMembers) { if (controller.teamLeader != null) { JoinTeam(this); return(true); } } return(false); }
void Awake() { shootTarget = null; sm = TD_Utility.Utility.GetChildByTag(gameObject, Constants.StateMachineTag).GetComponent <StateMachine>(); if (sm == null) { Debug.LogError("State Machine could not be found for agent: " + gameObject.name); } sm.SetAgent(gameObject); sensor = TD_Utility.Utility.GetChildByTag(gameObject, Constants.SensorTag).GetComponent <AgentSensor>(); if (sensor == null) { Debug.LogError("Sensor could not be found for agent: " + gameObject.name); } }
void Start() { controller = GetComponent <AgentController>(); sensor = GetComponent <AgentSensor>(); behaviour = GetComponent <AgentBehaviour>(); }
public void SetSensor(AgentSensor sensor) { Sensor = sensor; }