コード例 #1
0
        /*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));
        }
コード例 #2
0
        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;
                }
            }
        }
コード例 #3
0
        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();
        }
コード例 #4
0
 public void Init(MazeMapData mapData)
 {
     mMapData = mapData;
     BuildMap();
 }