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); }
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); } }
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); } } }