示例#1
0
 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;
         }
     }
 }
示例#2
0
 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);
         }
     }
 }
示例#3
0
        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);
        }