private void PackLoop() { if (Leader == null) { // This member of the pack has no leader - look around for any leaders Leader = FindLeader(); if (Leader == null) { // No leaders around - this pack member becomes leader then MakeLeader(); return; } } }
private void MakeLeader() { // Make this pack member a leader and let any nearby members know IsLeader = true; foreach (var entity in Awareness) { // Entity must match the pack's type TestPackBrain brain = entity.GetComponent <TestPackBrain>(); if (brain != null) { brain.IsLeader = false; brain.Leader = this; Pack.Add(brain); } } }
private TestPackBrain FindLeader() { foreach (var entity in Awareness) { // Entity must match the pack's type TestPackBrain brain = entity.GetComponent <TestPackBrain>(); if (brain != null) { if (brain.IsLeader) { return(brain); } } } return(null); }