Exemplo n.º 1
0
    private void OnDrawGizmos() //ao desenhar o gizmos da unity //para testes
    {
        if (showGizmosOnInspector)
        {
            Gizmos.DrawWireSphere(transform.position, startingCount * agentDensity);               //desenhar o circulo de spawn dos agentes
            Gizmos.color = new Color(0f, 0.8f, 0f, 1f);
            Gizmos.DrawWireSphere(transform.position, neighborRadius);                             //desenhar o circulo de alcance dos agentes //para testes
            Gizmos.color = new Color(0.8f, 0f, 0f, 1f);
            Gizmos.DrawWireSphere(transform.position, neighborRadius * avoidanceRadiusMultiplier); //desenhar o circulo de "evasao" dos agentes //para testes

            if (flockBehavior.GetType() == typeof(CompositeBehavior))                              //se for um composite behavior
            {
                CompositeBehavior compositeBehavior = (CompositeBehavior)flockBehavior;
                if (compositeBehavior.flockBehaviors != null)                                              //se nao for null
                {
                    for (int i = 0; i < compositeBehavior.flockBehaviors.Length; i++)                      //para cada comportamento no array
                    {
                        if (compositeBehavior.flockBehaviors[i].GetType() == typeof(StayInRadiusBehavior)) //se for um stayInRadius behavior
                        {
                            ((StayInRadiusBehavior)compositeBehavior.flockBehaviors[i]).OnDrawGizmos();    //desenhar o gizmos (se possivel)
                        }
                    }
                }
            }
        }
    }