50 lines
1.5 KiB
C#
50 lines
1.5 KiB
C#
using UnityEngine;
|
|
|
|
namespace AmazingAssets.TerrainToMesh.Example
|
|
{
|
|
[RequireComponent(typeof(MeshFilter), typeof(MeshRenderer))]
|
|
public class ExportMeshAndBasemap : MonoBehaviour
|
|
{
|
|
public TerrainData terrainData;
|
|
|
|
public int vertexCountHorizontal = 100;
|
|
|
|
public int vertexCountVertical = 100;
|
|
|
|
[Space(10f)]
|
|
public bool exportHoles;
|
|
|
|
public int mapsResolution = 512;
|
|
|
|
private void Start()
|
|
{
|
|
if (!(terrainData == null))
|
|
{
|
|
Mesh sharedMesh = terrainData.TerrainToMesh().ExportMesh(vertexCountHorizontal, vertexCountVertical, Normal.CalculateFromMesh);
|
|
GetComponent<MeshFilter>().sharedMesh = sharedMesh;
|
|
Texture2D value = terrainData.TerrainToMesh().ExportBasemapDiffuseTexture(mapsResolution, exportHoles, unpack: false);
|
|
Texture2D texture2D = terrainData.TerrainToMesh().ExportBasemapNormalTexture(mapsResolution, unpack: false);
|
|
Texture2D texture2D2 = terrainData.TerrainToMesh().ExportBasemapMaskTexture(mapsResolution, unpack: false);
|
|
Material material = new Material(Shader.Find("Standard"));
|
|
material.SetTexture("_MainTex", value);
|
|
material.SetTexture("_BumpMap", texture2D);
|
|
if (texture2D2 != null)
|
|
{
|
|
material.SetTexture("_MetallicGlossMap", texture2D2);
|
|
material.EnableKeyword("_METALLICGLOSSMAP");
|
|
}
|
|
if (texture2D != null)
|
|
{
|
|
material.EnableKeyword("_NORMALMAP");
|
|
}
|
|
if (exportHoles)
|
|
{
|
|
material.SetFloat("_Mode", 1f);
|
|
material.EnableKeyword("_ALPHATEST_ON");
|
|
}
|
|
GetComponent<Renderer>().sharedMaterial = material;
|
|
}
|
|
}
|
|
}
|
|
}
|