private TravelMapInfo FakeMapInfo() { TravelMapInfo ret = new TravelMapInfo(); for (int i = 0; i < 7; i++) { TravelPotInfo pot = new TravelPotInfo("地点" + i); pot.Opts = new List <string>(new string[] { "a", "b", "c" }); ret.pots.Add(pot); } List <int[]> edges = new List <int[]>(); edges.Add(new int[] { 0, 1 }); edges.Add(new int[] { 1, 2 }); edges.Add(new int[] { 1, 3 }); edges.Add(new int[] { 2, 4 }); edges.Add(new int[] { 2, 5 }); edges.Add(new int[] { 4, 6 }); edges.Add(new int[] { 5, 6 }); ret.MapName = "Map00"; ret.edges = edges; return(ret); }
public void LoadMap(TravelMapInfo info) { int numPot = info.pots.Count; Pots = mResLoader.Instantiate("Travel/Maps/" + info.MapName, PotLyaer); GeneratePots(info); for (int i = 0; i < info.edges.Count; i++) { int[] edge = info.edges[i]; if (!state.graph.ContainsKey(edge[0])) { state.graph.Add(edge[0], new List <int>()); } if (!state.graph.ContainsKey(edge[1])) { state.graph.Add(edge[1], new List <int>()); } state.graph[edge[0]].Add(edge[1]); state.graph[edge[1]].Add(edge[0]); } }
private void GeneratePots(TravelMapInfo info) { int idx = 0; foreach (Transform child in Pots.transform) { GameObject potGo = mResLoader.Instantiate("Travel/Pot", child); TravelPot pot = potGo.GetComponent <TravelPot> (); pot.Init(info.pots[idx], this); state.Pots.Add(pot); idx += 1; } foreach (int[] edge in info.edges) { GameObject lineGo = mResLoader.Instantiate("Travel/Line", LineLayer); LineRenderer line = lineGo.GetComponent <LineRenderer>(); Vector3 e0 = state.Pots[edge[0]].transform.position; Vector3 e1 = state.Pots[edge[1]].transform.position; Vector3[] positions = { e0 + Vector3.forward, e1 + Vector3.forward }; line.SetPositions(positions); state.lines.Add(line); } PlayerPawn = mResLoader.Instantiate("Travel/pawn"); int startIdx = 0; Vector2 startPos = state.Pots[startIdx].transform.position; PlayerPawn.transform.position = new Vector3(startPos.x, startPos.y, PawnZ); Vector3 cameraPos = ClampPosInBound(startPos); cameraPos.z = mainCamera.transform.position.z; mainCamera.transform.position = cameraPos; }