public Player AddPlayer(Vector3 normalizedPosition, Simulation simulation, NeuralNet brain = null) { GameObject playerObject = Instantiate(playerTemplate.prefabObject); if (playerObject == null) { return(null); } playerObject.GetComponent <GamePiece>().template = playerTemplate; if (brain != null) { playerObject.GetComponent <GamePiece>().brain = brain.Clone(); } playerObject.transform.position = normalizedPosition; playerObject.layer = playerLayer; playerObject.SetActive(true); playerObject.transform.name = "Pusher"; Player player = new Player(playerObject, simulation); simulation.AddPlayer(player); player.simulation = simulation; pushers[player.PlayerObject] = player; playerObject.GetComponent <GamePiece>().player = player; return(player); }