private void OnTriggerEnter(Collider agent) { agentState = agent.GetComponent <CarrierCollisionSensorState>(); // update agent's state and entire agents' list information if (agent.tag == "Carrier") { collisionSignal = true; agents.Add(agent); agentsInfo.Add(agentState); } }
private void OnTriggerExit(Collider agent) { agentState = agent.GetComponent <CarrierCollisionSensorState>(); if (agent.tag == "Carrier") { agents.Remove(agent); agentsInfo.Remove(agentState); collisionSignal = false; collisionTime = 0; gameObject.GetComponentInParent <RescuerCarrier>().highPriority = false; } }
private void GetUnionList(CarrierCollisionSensorState currentAgent) { Queue <CarrierCollisionSensorState> tmpQueue = new Queue <CarrierCollisionSensorState>(); CollisionList = new List <CarrierCollisionSensorState>(); tmpQueue.Enqueue(currentAgent); while (tmpQueue.Count > 0) { CarrierCollisionSensorState agent = tmpQueue.Dequeue(); foreach (var item in agent.GetComponent <CarrierSensor>().agentsInfo) { if (!CollisionList.Contains(item)) { CollisionList.Add(item); tmpQueue.Enqueue(item); } } } }