/*public override void OnSingletonInit() * { * mMap = GetComponentInChildren<MazeMap>(); * mAvatar = GetComponentInChildren<MazeAvatar>(); * * Reset(); * }*/ public void Reset() { //todo: configurable string savePath = System.IO.Path.Combine(Application.persistentDataPath, "MazeMapDesign"); savePath = System.IO.Path.Combine(savePath, "Level1.json"); string jsonText = File.ReadAllText(savePath); MazeMapData data = jsonText.FromJson <MazeMapData>(); mMap.Init(data); mCurGrid = mMap.GetStartGrid(); List <Vector2 <int> > dirs = DIRECTIONS.GetRange(0, DIRECTIONS.Count); while (dirs.Count > 0) { //get a random accessible direction Vector2 <int> dir = dirs[Random.Range(0, dirs.Count)]; MazeGrid grid = mMap.GetGrid(mCurGrid.XY.x + dir.x, mCurGrid.XY.y + dir.y); if (grid.CheckPass() == MazeGrid.PassResult.Pass) { mCurDir = dir; break; } dirs.Remove(dir); } mAvatar.Init(mCurGrid.Position, new Vector3(mCurDir.x, 0, mCurDir.y)); }
private void LoadMap() { Toggle[] toggles = m_FileNamePrefab.transform.parent.GetComponentsInChildren <Toggle>(); for (int i = 0; i < toggles.Length; i++) { if (toggles[i].isOn) { ClearMap(); string fileName = toggles[i].GetComponentInChildren <Text>().text; string savePath = System.IO.Path.Combine(mSavePath, fileName + ".json"); string jsonText = File.ReadAllText(savePath); MazeMapData data = jsonText.FromJson <MazeMapData>(); m_InputName.text = data.Name; m_InputWidth.text = data.Width.ToString(); m_InputHeight.text = data.Height.ToString(); BuildMap(data.Grids); break; } } }
private void SaveMap() { if (string.IsNullOrEmpty(m_InputName.text)) { mNameTip.SetActive(true); return; } MazeMapData data = new MazeMapData(); data.Name = m_InputName.text; data.Width = mMapWidth; data.Height = mMapHeight; data.Grids = mGridList; string savePath = System.IO.Path.Combine(mSavePath, m_InputName.text + ".json"); string jsonText = JsonUtility.ToJson(data, true); File.WriteAllText(savePath, jsonText); LoadMapFiles(); }
public void Init(MazeMapData mapData) { mMapData = mapData; BuildMap(); }