void Update() { if (m_gameController == null) { return; } Transform upGround = m_gameController.cloestGround.GetChild(0); Transform downGround = m_gameController.cloestGround.GetChild(1); // Insert the inputs genomeController.Reset(); genomeController.Input(new float[] { transform.position.x, transform.position.y, rigidbody2D.velocity.x, rigidbody2D.velocity.y, upGround.position.x, upGround.position.y, downGround.position.x, downGround.position.y, }); genomeController.StartProcess(); // Process the outputs if (genomeController.GetOutput(0) > 0) { Jump(); } }
private void Update() { genomeController.Reset(); genomeController.Input(new float[] { transform.position.x, transform.position.y, }); genomeController.StartProcess(); m_left = genomeController.GetOutput(0) > 0; m_right = genomeController.GetOutput(1) > 0; m_jump = genomeController.GetOutput(2) > 0; }
public void DataProcess() { Genometype.NodeGenes[] nodes = new Genometype.NodeGenes[] { new Genometype.NodeGenes(Genometype.NodeGenes.Types.Input, _IOIndex: 0), new Genometype.NodeGenes(Genometype.NodeGenes.Types.Hidden), new Genometype.NodeGenes(Genometype.NodeGenes.Types.Output), }; Genometype.ConnectionGenens[] connections = new Genometype.ConnectionGenens[] { new Genometype.ConnectionGenens(0, 1, 0.1f), new Genometype.ConnectionGenens(1, 2, 1f, Genometype.ConnectionGenens.OperatorType.Plus), }; GenomeController controller = new GenomeController(new Genometype(nodes, connections)); // Test get output controller.Reset(); Assert.AreEqual(controller.GetOutput(0), 0); // Test insert input and process data controller.Input(new float[] { 0.9f }); controller.StartProcess(); Assert.AreEqual(controller.GetOutput(0), 1.09f); }