예제 #1
0
 private void CheckSwarmList()
 {
     for (int i = 0; i < m_festbeeSwarmList.Count; i++)
     {
         FestBeeSwarm swarm = m_festbeeSwarmList[i];
         if (swarm.IsLost)
         {
             m_festbeeSwarmList.Remove(swarm);
             i--;
             Destroy(swarm.gameObject);
         }
     }
 }
예제 #2
0
    public void GenerateFestBeeSwarm(int beeNumber)
    {
        Transform    swarmExit = m_SwarmExits[Random.Range(0, m_SwarmExits.Count)];
        FestBeeSwarm swarm     = Instantiate(m_BeeSwarmPrefab, swarmExit.position, Quaternion.identity);

        m_festbeeSwarmList.Add(swarm);

        for (int i = 0; i < beeNumber; i++)
        {
            BeeBase bee = Instantiate(m_BeePrefab, swarm.transform.position, Quaternion.identity);
            swarm.AddSwarmObject(bee);
        }
    }
예제 #3
0
    /// <summary>
    ///
    /// </summary>
    /// <param name="swarm"></param>
    /// <param name="targetPos"></param>
    void SendCopToPlace(FestBeeSwarm swarm, Vector3 targetPos, Vector3 dir)
    {
        SwarmObjectCop cop = currentSwarm.GetRandomnlyObject();

        if (cop != null)
        {
            swarm.IsChecked();
            cop.Alert();

            cop.AssignNewTarget(targetPos, dir);
            cop.SwarmTarget = swarm;

            cop.OnTargetReached  = null;
            cop.OnTargetReached += ProceedToCheck;
        }
    }
예제 #4
0
 private void Awake()
 {
     swarm = Instantiate(m_SwarmBasePrefab, transform.position, Quaternion.identity, transform);
 }
예제 #5
0
 public void BackToHive(FestBeeSwarm swarm)
 {
     swarm.PrepareToDestroy();
     m_festbeeSwarmList.Remove(swarm);
     Destroy(swarm.gameObject);
 }