Ejemplo n.º 1
0
    public void Evaluate(IBlackBox box)
    {
        int xPos, zPos;

        lock (this)
        {
            xPos = _xCounter * _xFactor + _xOffset;
            if (xPos < _xLimit)
            {
                _xCounter++;
            }

            else
            {
                _xCounter = 0;
                _zCounter++;
            }
            zPos = _zCounter * _zFactor;
            _counter++;
            if (_counter == experiment.DefaultPopulationSize)
            {
                ResetCounters();
            }
        }

        GameObject     obj        = Instantiate(Unit, new Vector3(xPos, 0, zPos), Unit.transform.rotation) as GameObject;
        UnitController controller = obj.GetComponent <UnitController>();

        controller.MouseDownEvent += (sender, args) =>
        {
            var shapeController = sender as ShapeController;
            if (SelectedController != null)
            {
                SelectedController.DeSelect();
            }
            if (shapeController != null)
            {
                SelectedController = shapeController;
            }
        };
        ControllerMap.Add(box, controller);

        controller.Activate(box);
    }