public void Evaluate(IBlackBox box) { // Random starting point in radius 20 Vector3 dir = new Vector3(UnityEngine.Random.Range(-1f, 1f), 0, UnityEngine.Random.Range(-1f, 1f)); Vector3 pos = dir.normalized * 20; pos.y = 1; GameObject obj = Instantiate(Robot, pos, Quaternion.identity) as GameObject; TrainingController robo = obj.GetComponent <TrainingController>(); Target.transform.position = new Vector3(0, 1, 0); Target.transform.localScale = new Vector3(Settings.Brain.TargetSize, 2, Settings.Brain.TargetSize); dict.Add(box, robo); if (Settings.Brain.MultipleTargets) { GameObject t = Instantiate(Target, new Vector3(0, 1, 0), Quaternion.identity) as GameObject; t.transform.localScale = new Vector3(1, 1, 1); TargetController tc = t.AddComponent <TargetController>(); tc.Activate(obj.transform); targetDict.Add(robo, tc); robo.Activate(box, t); } else { robo.Activate(box, Target); } evaluationStartTime = 0; }