Hi guis i have made/modify a code to make a dig system it work but when i dig the hole is shallow how can i increare not the radius of the hole but the depth
public TerrainData tData;
private float[,] saved;
private float[,] prova;
public Texture2D cratertex;
public int xRes;
public int yRes;
public Vector3 mousepos;
Ray ray;
public float distance;
RaycastHit hit;
public Color[] craterData;
public Texture2D snowTxt;
public Transform cam = Camera.main.transform;
public bool ManiOccupate = false;
public bool shift = false;
public int Snow_Count = 0;
public bool inizializzaVar = true;
void Start(){
tData = Terrain.activeTerrain.terrainData;
xRes = tData.heightmapWidth;
yRes = tData.heightmapHeight;
saved = tData.GetHeights(1,1,xRes,yRes);
craterData = cratertex.GetPixels();
}
void Update(){
if(inizializzaVar){
tData = Terrain.activeTerrain.terrainData;
xRes = tData.heightmapWidth;
yRes = tData.heightmapHeight;
saved = tData.GetHeights(0,0,xRes,yRes);
craterData = cratertex.GetPixels();
cam = GameObject.FindWithTag("LocalCam").transform;
inizializzaVar = false;
}
ray = new Ray(cam.position, cam.forward);
distance= Vector3.Distance(transform.position,hit.point);
if (Physics.Raycast(ray, out hit,10000)){
mousepos = hit.point;
}
#region Scava
if (Input.GetMouseButtonDown(1) !shift distance <= 35.5 /* Snow_Count <= 4*/){
int x = (int) Mathf.Lerp(0, xRes, Mathf.InverseLerp(0, tData.size.x, mousepos.x));
int z = (int) Mathf.Lerp(0, yRes, Mathf.InverseLerp(0, tData.size.z, mousepos.z));
x = Mathf.Clamp(x, cratertex.width/2, xRes-cratertex.width/2);
z = Mathf.Clamp(z, cratertex.height/2, yRes-cratertex.height/2);
float[,] areaT = tData.GetHeights(x-cratertex.width/2, z-cratertex.height/2, cratertex.width, cratertex.height);
for (int i = 0; i < cratertex.height; i++) {
for (int j = 0; j < cratertex.width; j++) {
areaT [i,j] = (areaT[i,j] - craterData[i*cratertex.width + j].a/60000);// dividi per diminuire il diametro del buco
// Debug.Log("i: "+i+"j: "+ j );
}
}
// tData.SetHeights(x-cratertex.width/10, z-cratertex.height/9,new[,]{{0.000001f}});
tData.SetHeights(x-cratertex.width/2, z-cratertex.height/2,prova);
Snow_Count++;
}
}
how can i do??