public void InstantiateTerrainLayer() { if (terrainLayerPrefab == null) { return; } if (terrainLayerPrefab.GetComponent <TC_TerrainLayer>() == null) { return; } TC_Area2D area2D = TC_Area2D.current; if (area2D == null) { return; } // Destroy the Terrain Layer that is currently assigned if (area2D.terrainLayer != null) { Destroy(area2D.terrainLayer.gameObject); } // Instantiate the Terrain Layer Prefab GameObject terrainLayerGO = Instantiate(terrainLayerPrefab); area2D.terrainLayer = terrainLayerGO.GetComponent <TC_TerrainLayer>(); // Assign all nodes in Terrain Layer area2D.terrainLayer.GetItems(false); }
static public Terrain GetTerrain(Vector3 worldPos) { TC_Area2D area2D = TC_Area2D.current; for (int i = 0; i < area2D.terrainAreas[0].terrains.Count; i++) { TCUnityTerrain t = area2D.terrainAreas[0].terrains[i]; if (t.terrain == null) { continue; } if (t.terrain.terrainData == null) { continue; } Rect rect = new Rect(t.terrain.transform.position.x, t.terrain.transform.position.z, t.terrain.terrainData.size.x, t.terrain.terrainData.size.z); if (rect.Contains(worldPos)) { return(t.terrain); } } return(null); }
void CreateTerrains() { TC_Area2D area2D = TC_Area2D.current; if (area2D == null) { return; } area2D.terrainAreas[0].CreateTerrains(); }