public bool DoCheckAccess(Direction checkDir) { Vector2 <int> dir = GetDirection(checkDir); MazeGrid nextGrid = mMap.GetGrid(mCurGrid.XY.x + dir.x, mCurGrid.XY.y + dir.y); return(nextGrid.CheckPass() == MazeGrid.PassResult.Pass); }
/*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)); }