// Use this for initialization void Start() { //UI UIEventListener.Get(BtnStart.gameObject).onClick = OnClickStart; UIEventListener.Get(BtnStop.gameObject).onClick = OnClickStop; if (LoadWeights) { try { LoadGenFromFile(); } catch (Exception E) { Debug.Log("Load Gen Failed " + E.Message); LoadWeights = false; } } if (!LoadWeights) { UGenAlg.ConfigData Config = new UGenAlg.ConfigData(); Config.PopSize = 3000; Config.NumWeights = new UBotAIController().Net.GetWeightCount(); Gen = new UGenAlg(); Gen.Init(Config); } //更新适应性分数代理 Gen.onUpdateFitnessScores = UpdateFitnessScores; BoardList = new List <UChessboard>(); ChessBoardPrefab.learn = true; ChessBoardPrefab.gameObject.SetActive(showFirstChessboard); ChessBoardPrefab.InitStart(); BoardList.Add(ChessBoardPrefab); //创建其他棋盘 for (int i = 1; i < Gen.Config.PopSize / 2; i++) { UChessboard board = GameObject.Instantiate <GameObject>(ChessBoardPrefab.gameObject).GetComponent <UChessboard>(); board.learn = true; //board.show = false; board.gameObject.SetActive(false); board.InitStart(); BoardList.Add(board); } //将加载的适应性分数保存 if (LoadWeights) { PutFitnessScores(); } }