|
|
|
@ -183,6 +183,9 @@ public class TerrainCreatorEditor : Editor
|
|
|
|
MeshFilter mf = terrainObj.AddComponent<MeshFilter>();
|
|
|
|
MeshFilter mf = terrainObj.AddComponent<MeshFilter>();
|
|
|
|
mf.sharedMesh = mesh;
|
|
|
|
mf.sharedMesh = mesh;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MeshCollider mc = terrainObj.AddComponent<MeshCollider>();
|
|
|
|
|
|
|
|
mc.sharedMesh = mesh;
|
|
|
|
|
|
|
|
|
|
|
|
MeshRenderer mr = terrainObj.AddComponent<MeshRenderer>();
|
|
|
|
MeshRenderer mr = terrainObj.AddComponent<MeshRenderer>();
|
|
|
|
if (creator.terrainMaterial != null)
|
|
|
|
if (creator.terrainMaterial != null)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
@ -259,7 +262,7 @@ public class TerrainCreatorEditor : Editor
|
|
|
|
TreeRandomPreset p = creator.preset;
|
|
|
|
TreeRandomPreset p = creator.preset;
|
|
|
|
if (depth >= p.maxDepth) return;
|
|
|
|
if (depth >= p.maxDepth) return;
|
|
|
|
|
|
|
|
|
|
|
|
float currentLength = isRoot ? 2f : length * p.scaleFactor * Random.Range(1f - p.scaleRandom, 1f + p.scaleRandom);
|
|
|
|
float currentLength = isRoot ? 5f : length * p.scaleFactor * Random.Range(1f - p.scaleRandom, 1f + p.scaleRandom);
|
|
|
|
|
|
|
|
|
|
|
|
GameObject pivot = new GameObject($"Pivot_D{depth}");
|
|
|
|
GameObject pivot = new GameObject($"Pivot_D{depth}");
|
|
|
|
pivot.transform.SetParent(parent, false);
|
|
|
|
pivot.transform.SetParent(parent, false);
|
|
|
|
@ -280,8 +283,9 @@ public class TerrainCreatorEditor : Editor
|
|
|
|
branchObj.transform.localPosition = Vector3.up * currentLength * 0.5f;
|
|
|
|
branchObj.transform.localPosition = Vector3.up * currentLength * 0.5f;
|
|
|
|
branchObj.transform.localRotation = Quaternion.identity;
|
|
|
|
branchObj.transform.localRotation = Quaternion.identity;
|
|
|
|
|
|
|
|
|
|
|
|
float thickness = 0.2f * (p.maxDepth - depth) / p.maxDepth;
|
|
|
|
float thickness = 0.15f * (p.maxDepth - depth);
|
|
|
|
branchObj.transform.localScale = new Vector3(thickness, currentLength * 0.5f, thickness);
|
|
|
|
float lengthScale = creator.branchPrefab != null ? currentLength : currentLength * 0.5f;
|
|
|
|
|
|
|
|
branchObj.transform.localScale = new Vector3(thickness, lengthScale, thickness);
|
|
|
|
|
|
|
|
|
|
|
|
Renderer rnd = branchObj.GetComponentInChildren<Renderer>();
|
|
|
|
Renderer rnd = branchObj.GetComponentInChildren<Renderer>();
|
|
|
|
if (rnd != null)
|
|
|
|
if (rnd != null)
|
|
|
|
@ -293,6 +297,7 @@ public class TerrainCreatorEditor : Editor
|
|
|
|
MaterialPropertyBlock mpb = new MaterialPropertyBlock();
|
|
|
|
MaterialPropertyBlock mpb = new MaterialPropertyBlock();
|
|
|
|
rnd.GetPropertyBlock(mpb);
|
|
|
|
rnd.GetPropertyBlock(mpb);
|
|
|
|
mpb.SetColor("_Color", baseColor);
|
|
|
|
mpb.SetColor("_Color", baseColor);
|
|
|
|
|
|
|
|
mpb.SetColor("_BaseColor", baseColor);
|
|
|
|
rnd.SetPropertyBlock(mpb);
|
|
|
|
rnd.SetPropertyBlock(mpb);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|