public override void InitializeAgent() { robot = GetComponent <FighterBot>(); stepInterval = agentParameters.numberOfActionsBetweenDecisions; isTraining = brain.brainType == BrainType.External; waypoints = new Queue <Vector2>(); }
private void ToggleTexture(FighterBot robot, bool show) { if (robot != null) { uiImage.texture = robot.GetCam().Texture; uiImage.enabled = show; showTexture = show; } }
public void Initialize(FighterBot robot) { for (int i = 0; i < 4; i++) { robot.GetLeg(i).GetOuterLeg().RaiseCollisionEvent += HandleCollisionEvent; } rb = robot.GetBody().GetRigidbody(); audioPlayer = Object.FindObjectOfType <AudioPlayer>(); audioSource = GetComponent <AudioSource>(); laser = GetComponent <LineRenderer>(); laser.startWidth = 0.075f; laser.endWidth = 0.075f; laser.enabled = true; }
private void Follow(FighterBot robot) { if (robot != selected) { if (showTexture) { ToggleTexture(selected, false); ToggleTexture(robot, true); } selected = robot; time = Time.time; } crFollow = StartCoroutine(FollowCR()); }
private void SelectNext() { List <FighterBot> candidates = new List <FighterBot>(); List <FighterBot> preferedCandidates = new List <FighterBot>(); for (int i = 0; i < robots.Length; i++) { FighterBot robot = robots[i]; if (robot != selected && robot.GetPosition().sqrMagnitude < outerBound && IsUpright(robot) && HasMatchingVelocity(robot)) { candidates.Add(robot); if (robot.Sensor.IsLocked) { preferedCandidates.Add(robot); } } } if (preferedCandidates.Count > 0) { candidates = preferedCandidates; } float minDist = Mathf.Infinity; FighterBot closest = selected; foreach (FighterBot robot in candidates) { float d = Vector3.Distance(transform.position, robot.GetPosition()); if (d < minDist) { closest = robot; minDist = d; } } Follow(closest); }