DetailLayer ConvertLayer(uint ti, TETerrainMaterialData.UndergrowthDetailLayer ugdl) { var dl = new DetailLayer(); dl.widthHeightScale = ugdl.widthHeightScale; dl.probability = ugdl.probability; dl.templateIndex = ti; return(dl); }
public void SetDetailLayer( int id, DetailLayer newLayer ){ m_CurrentDetailLayerSet[id] = newLayer; }
public void AddNewDetailLayer(){ if ( currentTerrainInstance != null ){ DetailPrototype[] details = currentTerrainInstance.terrainData.detailPrototypes; DetailPrototype[] newDetails = new DetailPrototype[details.Length+1]; for ( int i = 0; i < details.Length; i++ ){ newDetails[i] = details[i]; } newDetails[newDetails.Length-1] = new DetailPrototype(); currentTerrainInstance.terrainData.detailPrototypes = newDetails; int[,] newDetailmap = new int[currentTerrainInstance.terrainData.detailWidth, currentTerrainInstance.terrainData.detailHeight]; for ( int i = 0; i < currentTerrainInstance.terrainData.detailWidth; i++ ){ for ( int j = 0; j < currentTerrainInstance.terrainData.detailHeight; j++ ){ newDetailmap[i,j] = 0; } } currentTerrainInstance.terrainData.SetDetailLayer( 0, 0, newDetails.Length-1, newDetailmap ); if ( m_CurrentDetailLayerSet.Count < newDetails.Length ){ DetailLayer newLayer = new DetailLayer(); List<string> bundleList = new List<string>(m_LoadedVegetation.Keys); if ( bundleList.Count > 0 ){ List<string> imageList = new List<string>(m_LoadedVegetation[bundleList[0]].Keys); newLayer.path = bundleList[0] + "/" + imageList[0]; newLayer.image = m_LoadedVegetation[bundleList[0]][imageList[0]]; } m_CurrentDetailLayerSet.Add ( newLayer ); } } else { DetailLayer newLayer = new DetailLayer(); List<string> bundleList = new List<string>(m_LoadedVegetation.Keys); if ( bundleList.Count > 0 ){ List<string> imageList = new List<string>(m_LoadedVegetation[bundleList[0]].Keys); newLayer.path = bundleList[0] + "/" + imageList[0]; newLayer.image = m_LoadedVegetation[bundleList[0]][imageList[0]]; } m_CurrentDetailLayerSet.Add ( newLayer ); } }