void Start() { container = GameObject.Find("Container"); GameObject pfb_empty = Resources.Load("FreeDimensionForge/LowPolyEnvironmentsPack/Art/ForestEnvironmentPack/Prefabs/ForestEmpty") as GameObject; GameObject pfb_tree = Resources.Load("FreeDimensionForge/LowPolyEnvironmentsPack/Art/ForestEnvironmentPack/Prefabs/ForestTreeSpruce_01") as GameObject; GameObject pfb_road_cross = Resources.Load("FreeDimensionForge/LowPolyEnvironmentsPack/Art/ForestEnvironmentPack/Prefabs/ForestCrossing_01") as GameObject; GameObject pfb_road_straight = Resources.Load("FreeDimensionForge/LowPolyEnvironmentsPack/Art/ForestEnvironmentPack/Prefabs/ForestStraight") as GameObject; GameObject pfb_road_Tcross = Resources.Load("FreeDimensionForge/LowPolyEnvironmentsPack/Art/ForestEnvironmentPack/Prefabs/ForestCrossing_02") as GameObject; GameObject pfb_road_curve = Resources.Load("FreeDimensionForge/LowPolyEnvironmentsPack/Art/ForestEnvironmentPack/Prefabs/ForestCurve") as GameObject; GameObject pfb_water = Resources.Load("FreeDimensionForge/LowPolyEnvironmentsPack/Art/ForestEnvironmentPack/Prefabs/ForestLake") as GameObject; GameObject pfb_forest = Resources.Load("FreeDimensionForge/LowPolyEnvironmentsPack/Art/ForestEnvironmentPack/Prefabs/forest") as GameObject; GameObject pfb_mountain = Resources.Load("FreeDimensionForge/LowPolyEnvironmentsPack/Art/ForestEnvironmentPack/Prefabs/mountain") as GameObject; GameDataMgr.GetInstance().Init(); GameDataMgr dataMgr = GameDataMgr.GetInstance(); dataMgr.Init(); foreach (int id in dataMgr.playerInfos.Keys) { Player player = dataMgr.playerInfos[id]; GameObject pfb_player = Resources.Load("player/Basic People") as GameObject; playerMap.Add(id, pfb_player); putObject(pfb_player, (float)player.posX, (float)player.posY, 0, 0, "player_" + id.ToString()); // Debug.Log("player_"+id.ToString()+(float)player.posX+" "+(float)player.posY); } //putObject(pfb_tree,0,0,0,0,"tree"); Debug.Log("Map loaded"); // GameObject player = Resources.Load("player/Female A") as GameObject; // Debug.Log(player); // putObject(player,5,-5,0,5); /* * r1: === r2: | r3: + r4: -| r5: |- r6: | r7: --- * --- | * r8: ==\ r9: || r10: || r11: /== r12: water r13: forest || ==/ \== || */ // string[,] topography = new string[,]{ // {"r11","r1", "r1","r7", "r1", "r1","r8"}, // {"r2", "r12", "r12", "r2", "r13", "r13", "r2"}, // {"r2", " ", "r12", "r2", "r11","r8","r2"}, // {"r2", "r11","r1","r3", "r4", "r5","r4"}, // {"r5", "r9", " ", "r2", "r10","r3", "r4"}, // {"r2", " ", " ", "r2", "r12", "r2", "r2"}, // {"r10","r1", "r1","r6", "r1", "r6","r9"} // }; //string info = ResMgr.GetInstance().Load<TextAsset>("Map/data1").text; //string [] topography; //topography = info.Split('\n'); string[,] objs = new string[, ] { }; string[,] map = dataMgr.loadedMap; row = dataMgr.row; col = dataMgr.col; for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) { float x = i; float y = j; int passType = 0; switch (map[i, j]) { case "r": if (i - 1 >= 0 && map[i - 1, j] == "r") //上面是路 { if (j - 1 >= 0 && map[i, j - 1] == "r") //左边是路 { if (j + 1 < col && map[i, j + 1] == "r") //右边是路 { if (i + 1 < row && map[i + 1, j] == "r") //下边是路 { putObject(pfb_road_cross, x, y, 0, 0); } else { putObject(pfb_road_Tcross, x, y, 90, 0); } } else { if (i + 1 < row && map[i + 1, j] == "r") //下边是路 { putObject(pfb_road_Tcross, x, y, 0, 0); } else { putObject(pfb_road_curve, x, y, 90, 0); } } } else { if (j + 1 < col && map[i, j + 1] == "r") //右边是路 { if (i + 1 < row && map[i + 1, j] == "r") //下边是路 { putObject(pfb_road_Tcross, x, y, 180, 0); } else { putObject(pfb_road_curve, x, y, 180, 0); } } else { if (i + 1 < row && map[i + 1, j] == "r") //下边是路 { putObject(pfb_road_straight, x, y, 90, 0); } else { putObject(pfb_road_straight, x, y, 90, 0); } } } } else { if (j - 1 >= 0 && map[i, j - 1] == "r") //左边是路 { if (j + 1 < col && map[i, j + 1] == "r") //右边是路 { if (i + 1 < row && map[i + 1, j] == "r") //下边是路 { putObject(pfb_road_Tcross, x, y, 270, 0); } else { putObject(pfb_road_straight, x, y, 0, 0); } } else { if (i + 1 < row && map[i + 1, j] == "r") //下边是路 { putObject(pfb_road_curve, x, y, 0, 0); } else { putObject(pfb_road_straight, x, y, 0, 0); } } } else { if (j + 1 < col && map[i, j + 1] == "r") //右边是路 { if (i + 1 < row && map[i + 1, j] == "r") //下边是路 { putObject(pfb_road_curve, x, y, 270, 0); } else { putObject(pfb_road_straight, x, y, 0, 0); } } else { if (i + 1 < row && map[i + 1, j] == "r") //下边是路 { putObject(pfb_road_straight, x, y, 90, 0); } else { putObject(pfb_road_straight, x, y, 90, 0); } } } } break; case "g": putObject(pfb_empty, x, y, 0, 0); break; case "t": putObject(pfb_forest, x, y, 0, 0, "forest_" + ((int)x).ToString() + "_" + ((int)y).ToString()); passType = 2; break; case "w": putObject(pfb_water, x, y, 0, 0, "water_" + ((int)x).ToString() + "_" + ((int)y).ToString()); passType = 1; break; case "c": putObject(pfb_mountain, x, y, 0, 0, "mountain_" + ((int)x).ToString() + "_" + ((int)y).ToString()); passType = 1; break; // case "r2": putObject(pfb_road_straight, x, y, 90, 0); break; // case "r3": putObject(pfb_road_cross, x, y, 0, 0); break; // case "r4": putObject(pfb_road_Tcross, x, y, 0, 0); break; // case "r5": putObject(pfb_road_Tcross, x, y, 180, 0); break; // case "r6": putObject(pfb_road_Tcross, x, y, 90, 0); break; // case "r7": putObject(pfb_road_Tcross, x, y, 270, 0); break; // case "r8": putObject(pfb_road_curve, x, y, 0, 0); break; // case "r9": putObject(pfb_road_curve, x, y, 90, 0); break; // case "r10": putObject(pfb_road_curve, x, y, 180, 0); break; // case "r11": putObject(pfb_road_curve, x, y, 270, 0); break; // case "r12": putObject(pfb_water,x,y,0,0); passType = 1; break; // case "r13": putObject(pfb_forest, x, y, 0, 0); passType = 2; break; default: putObject(pfb_empty, x, y, 0, 0); break; } dataMgr.updateMapInfo(i, j, passType); } } int objRow = objs.GetLength(0); int objCol = objs.GetLength(1); // Assert.AreEqual(4, objCol); for (int i = 0; i < objRow; i++) { try{ GameObject pfb = Resources.Load("FreeDimensionForge/LowPolyEnvironmentsPack/Art/ForestEnvironmentPack/Prefabs/" + objs[i, 0]) as GameObject; putObject(pfb, float.Parse(objs[i, 1]) - 0.5f, float.Parse(objs[i, 2]) - 0.5f, int.Parse(objs[i, 3])); } catch { Debug.Log("ERROR: obj " + objs[i, 0] + " does not exist!\n"); } } setBorder(); }