动态更改TerrainDetail的贴图

public class TerrainDetailControl : MonoBehaviour {
    public GameObject terrain;
	public Texture2D[] texx;//要更换为的贴图
	private List<Texture2D> detailsGameobject = new List<Texture2D>();
	private DetailPrototype[] newPrototypes;
	private DetailPrototype[] oriPrototypes;
	private bool isIR = false;
    // Use this for initialization
    void Start () {

		oriPrototypes = Terrain.activeTerrain.terrainData.detailPrototypes;//记录当前TerrainDetail的贴图
		newPrototypes = new DetailPrototype [texx.Length];
		for (int i = 0; i < texx.Length; i++) {
			newPrototypes [i] = new DetailPrototype ();
			newPrototypes [i].prototypeTexture = texx[i];
			newPrototypes [i].prototype = oriPrototypes[i].prototype;
			newPrototypes [i].maxHeight = oriPrototypes[i].maxHeight;
			newPrototypes [i].maxWidth = oriPrototypes[i].maxWidth;
			newPrototypes [i].minHeight = oriPrototypes[i].minHeight;
			newPrototypes [i].minWidth = oriPrototypes[i].minWidth;

			newPrototypes [i].bendFactor = oriPrototypes[i].bendFactor;
			newPrototypes [i].noiseSpread = oriPrototypes[i].noiseSpread;
			newPrototypes [i].healthyColor = new Color (100,100,100);//oriPrototypes[i].healthyColor;
			newPrototypes [i].dryColor = new Color (100,100,100);//oriPrototypes[i].dryColor;
			newPrototypes [i].usePrototypeMesh = oriPrototypes[i].usePrototypeMesh;
			newPrototypes [i].renderMode = oriPrototypes[i].renderMode;
		}

    }
	
	// Update is called once per frame
	void Update () {
       
        if (Input.GetKeyDown(KeyCode.C))
        {
                  
			if (!isIR) {
                    Terrain.activeTerrain.terrainData.detailPrototypes = newPrototypes;
				isIR = true;
			} 
			else {
                
				Terrain.activeTerrain.terrainData.detailPrototypes = oriPrototypes;
				isIR = false;
			}
            Terrain.activeTerrain.terrainData.RefreshPrototypes();

        }
   }
    void OnApplicationQuit()
    {
        Terrain.activeTerrain.terrainData.detailPrototypes = oriPrototypes;
        Terrain.activeTerrain.terrainData.RefreshPrototypes();
    }
}


猜你喜欢

转载自blog.csdn.net/lei_7103/article/details/75390826