Beispiel #1
0
    private new void Start()
    {
        PersonajePlayer[] equipillo = GameObject.FindObjectsOfType <PersonajePlayer>();
        charactersInScene = new List <PersonajeBase>(equipillo);
        int space = 20;

        System.Random random = new System.Random();
        lider = random.Next(charactersInScene.Count);
        for (int i = 0; i < charactersInScene.Count; i++)
        {
            charactersInScene[i].transform.position = new Vector3(-50 + i % 5 * space, 0, -50 + (int)(i / 5) * space);
            charactersInScene[i].posicion           = new Vector3(-50 + i % 5 * space, 0, -50 + (int)(i / 5) * space);
            if (i != lider)
            {
                FlockingSD flocking = new FlockingSD(chPercent, sepPercent, followPercent);
                flocking.target = charactersInScene[lider];
                charactersInScene[i].newTask(flocking);
            }
            else
            {
                charactersInScene[i].applyTipo(StatsInfo.TIPO_PERSONAJE.ARQUERO);
            }
        }
        (charactersInScene[lider] as PersonajePlayer).newTask(new WanderSD(2 * (float)System.Math.PI, 5, 30 * Bodi.GradosARadianes, 2));
        (charactersInScene[lider] as PersonajePlayer).selected = true;
        selectedUnits.Add(charactersInScene[lider]);
        characterWithFocus = charactersInScene[lider];
        ui.showDebugInfo(true);
    }
Beispiel #2
0
 internal void actualizeAgentDebugInfo(PersonajeBase character)
 {
     debugAgentName.text = "Agent Name: " + character.nick;
     if (character.selectedBehaviour != null)
     {
         debugAgentBehaviour.text = "Selected Behaviour: " + character.selectedBehaviour.GetType().Name;
     }
     else
     {
         debugAgentBehaviour.text = "Selected Behaviour: No behaviour";
     }
     debugAgentLookingDirectionAngle.text = "Looking Direction Angle: " + character.orientacion;
     if (character.steeringActual != null)
     {
         debugAgentSteeringLinear.text  = "Linear Steering: " + character.steeringActual.linear;
         debugAgentSteeringAngular.text = "Angular Steering: " + character.steeringActual.angular;
     }
     else
     {
         debugAgentSteeringLinear.text  = "Linear Steering: (0, 0, 0)";
         debugAgentSteeringAngular.text = "Angular Steering: 0";
     }
     if ((character.selectedBehaviour as FlockingSD) != null)
     {
         debugAgentSteeringCombination.gameObject.SetActive(true);
         FlockingSD flocking = (character.selectedBehaviour as FlockingSD);
         debugAgentSteeringCombination.text = "Dyn Priority: Ch[" + System.Math.Round(flocking.chPercentDyn, 2)
                                              + "] Sep[" + System.Math.Round(flocking.sepPercentDyn, 2) + "] Foll[" + System.Math.Round(flocking.followLeaderPercentDyn, 2) + "]";
     }
     else
     {
         debugAgentSteeringCombination.gameObject.SetActive(false);
     }
 }
Beispiel #3
0
 public void applyFlockingConfiguration()
 {
     for (int i = 0; i < charactersInScene.Count; i++)
     {
         if (i != lider)
         {
             FlockingSD flocking = new FlockingSD(chPercent, sepPercent, followPercent);
             flocking.target = charactersInScene[lider];
             charactersInScene[i].newTask(flocking);
         }
     }
 }