示例#1
0
    void Update()
    {
        if (Input.GetButtonUp("AI_ON"))
        {
            AIEnablied = true;
            brain      = EvolutionController.CreateNeuralNet(evaluator);
            brain.setWeights(new Queue <double>(generateRandomWeights(brain.extractWeights().Count)));
        }

        if (AIEnablied)
        {
            setNeuralInputs();
            List <double> output = brain.calculateOutput();
            for (int i = 0; i < output.Count; ++i)
            {
                float newThrottle = output[i] < 0 ? 0 : (float)output[i];
                if (newThrottle > 1.0f)
                {
                    newThrottle = 1.0f;
                }
                thrusterControllers[i].throttle = newThrottle;
            }
        }
        else
        {
//			if (Input.GetButton("Jump")) {
//				foreach (ThrusterController thrusterController in thrusterControllers) {
//					thrusterController.firing = true;
//				}
//			} else {
//				foreach (ThrusterController thrusterController in thrusterControllers) {
//					thrusterController.firing = false;
//				}
//			}
        }
    }