private void OnEnable() { gridData = GridDataReader.ReadData(gridConfigFile); nodeData = NodeDataReader.ReadData(nodeConfigFile); CreateGrid(gridData, nodeData); }
public void CreateGrid(GridConfigData gridData, int [,] nodeData) { Debug.Log("Building grid..."); if (gridData == null) { throw new Exception("Grid data is null."); } NodeArray = new Node [gridData.Size.X, gridData.Size.Y]; GridSizeX = gridData.Size.X; GridSizeY = gridData.Size.Y; Nodes = new List <Node> (); m_loopNodes = new List <Node> (); for (int x = 0; x < gridData.Size.X; x++) { for (int y = 0; y < gridData.Size.Y; y++) { if (nodeData == null) { throw new Exception("nodeData is null."); } Vector3 worldPos = new Vector3(x * gridData.Spacing.X + gridData.Offset.X, y * gridData.Spacing.Y + gridData.Offset.Y, 0); NodeArray [x, y] = new Node(x, y, worldPos, nodeData [x, y]); Nodes.Add(NodeArray [x, y]); } } foreach (Node n in NodeArray) { n.AssignNeighbors(NodeArray); if (n.Type == Node.NodeType.LOOP_POINT) { m_loopNodes.Add(n); } } // Set loop nodes if (m_loopNodes.Count >= 2) { for (int i = 1; i < m_loopNodes.Count; i++) { m_loopNodes [i].SetLoopNode(m_loopNodes [i - 1]); } m_loopNodes [0].SetLoopNode(m_loopNodes [m_loopNodes.Count - 1]); } // Done building grid Debug.Log("Done building grid."); }
public override void OnInspectorGUI() { myTarget = ( Grid )target; DrawDefaultInspector(); // Generate grid button if (GUILayout.Button("Generate Grid")) { GridConfigData gridData = GridDataReader.ReadData(myTarget.gridConfigFile); int [,] nodeData = NodeDataReader.ReadData(myTarget.nodeConfigFile); myTarget.CreateGrid(gridData, nodeData); } }
/// <summary> /// 初始化 /// </summary> public void Init() { if (gridConfigDataDic == null) { gridConfigDataDic = new Dictionary <int, GridConfigData>(); TextAsset textAsset = Resources.Load <TextAsset>("Config/Config"); string[] items = textAsset.text.Replace("\r", "").Split('\n'); for (int i = 1; i < items.Length; i++) { if (!string.IsNullOrEmpty(items[i])) { string[] infos = items[i].Split(','); GridConfigData gridConfigData = new GridConfigData(); gridConfigData.Ladder = Convert.ToInt32(infos[0]); gridConfigData.ShowInfo = infos[1]; //gridConfigData.GridColor =new Color( Convert.ToInt32(infos[2]); { int r = System.Convert.ToInt32("0x" + infos[2][0] + infos[2][1], 16); int g = System.Convert.ToInt32("0x" + infos[2][2] + infos[2][3], 16); int b = System.Convert.ToInt32("0x" + infos[2][4] + infos[2][5], 16); gridConfigData.GridColor = new Color(r / 255f, g / 255f, b / 255f); } var createDatas = infos[3].Split('|'); gridConfigData.CreateMin = new List <int>(); for (int j = 0; j < createDatas.Length; j++) { gridConfigData.CreateMin.Add(Convert.ToInt32(createDatas[j])); } { int r = System.Convert.ToInt32("0x" + infos[4][0] + infos[4][1], 16); int g = System.Convert.ToInt32("0x" + infos[4][2] + infos[4][3], 16); int b = System.Convert.ToInt32("0x" + infos[4][4] + infos[4][5], 16); gridConfigData.FontColor = new Color(r / 255f, g / 255f, b / 255f); } gridConfigDataDic[gridConfigData.Ladder] = gridConfigData; } } //int index = 1; //do //{ // if (!gridConfigDataDic.ContainsKey(index)) // { // break; // } // index++; //} while (true); //Debug.Log(index); } }