MapData Sample() { Terrain terrain = Terrain.activeTerrain; if (terrain == null) { Debug.LogError("No Terrain."); return null; } int xCount = Mathf.RoundToInt(terrain.terrainData.size.x); int zCount = Mathf.RoundToInt(terrain.terrainData.size.z); if (!Mathf.IsPowerOfTwo(xCount) || !Mathf.IsPowerOfTwo(zCount)) { Debug.LogError("terrain size no PowerOfTwo."); return null; } MapData data = new MapData(xCount, zCount); data.name = System.IO.Path.GetFileNameWithoutExtension(EditorApplication.currentScene); data.terrain = terrain; data.SetHeights(thisTarget.GetTerrainHeight(terrain, thisTarget.terrainLayerID, gridSize, true)); data.SetNeighbourHeights(thisTarget.GetTerrainHeight(terrain, thisTarget.terrainLayerID, gridSize, false)); data.SetReachable(thisTarget.GetReachableFromNavMesh(terrain.terrainData.size, terrain.GetPosition(), gridSize)); return data; }