/// <summary> /// 更新棋局 /// </summary> public static void UpdateChessGame() { CalculateUtil.UpdateChessData(); //更新棋局 Dictionary <GameObject, Vector2> temp = new Dictionary <GameObject, Vector2>(); foreach (KeyValuePair <GameObject, Vector2> kvp in CalculateUtil.chess2Vector) { //一定要遍历赋值的,否则如果直接temp=CalculateUtil.chess2Vector就相当于引用了这个静态字典,没用 temp.Add(kvp.Key, kvp.Value); } maps.Add(temp); //添加棋谱 }
/// <summary> /// 悔棋点击事件 /// </summary> public void Undo_Click() { if (maps.Count >= 3) { Dictionary <GameObject, Vector2> temp = maps[maps.Count - 1 - 2]; foreach (KeyValuePair <GameObject, Vector2> kvp in temp) { CalculateUtil.ResetChessByMaps(kvp.Key, kvp.Value); } maps.RemoveRange(maps.Count - 2, 2); CalculateUtil.UpdateChessData(); ResetChessReciprocalStateEvent(); Chess_Boss.DetectBeAttacked(CalculateUtil.chess2Vector, CalculateUtil.vector2Chess); } else { //GameObject.Find("UndoButton").GetComponent<Button>().enabled = false; } }