void Update() { if (!this._isAlive) { return; } Debug.DrawRay(this._eyes.transform.position, this._eyes.transform.forward * this.DNA.ViewingDistance, Color.green); Debug.DrawRay(this._eyes.transform.position, this._eyes.transform.up * this.DNA.ViewingDistance, Color.blue); Debug.DrawRay(this._eyes.transform.position, -this._eyes.transform.up * this.DNA.ViewingDistance, Color.red); this._currentSituation = KnownSituation.Default; int arrowLayerMask = 1 << 10; RaycastHit2D hit = Physics2D.Raycast(this._eyes.transform.position, this._eyes.transform.forward, this.DNA.ViewingDistance, arrowLayerMask); if (hit.collider != null) { if (hit.collider.gameObject.tag == "upwall") { this._currentSituation = KnownSituation.HitTopWall; } else if (hit.collider.gameObject.tag == "downwall") { this._currentSituation = KnownSituation.HitBottomWall; } else { } } this._timeAlive += Time.deltaTime; }
public void Mutate() { KnownSituation randomSituation = AllKnownSituations[Random.Range(0, AllKnownSituations.Count())]; KnownAction randomAction = AllKnownActions[Random.Range(0, AllKnownActions.Count())]; this.SituationMap[randomSituation] = randomAction; }