Skip to content

Commit ef51e0a

Browse files
committed
✨ feat(static-profile): Terrain overrides
1 parent 8881642 commit ef51e0a

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

Assets/EsnyaUnityTools/Scripts/StaticProfile.cs

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,14 @@ public enum ColliderModification
5757
public bool overrideAnchor;
5858
public Transform anchor;
5959

60+
[Header("Terrain Grouping ID")]
61+
public bool overrideTerrainGroupingId;
62+
public int terrainGroupingId;
63+
64+
[Header("Terrain Material")]
65+
public bool overrideTerrainMaterialTemplate;
66+
public Material terrainMaterialTemplate;
67+
6068
private void Reset()
6169
{
6270
gameObject.tag = "EditorOnly";
@@ -151,6 +159,30 @@ public void Apply()
151159
}
152160
}
153161
}
162+
163+
var terrains = transform.parent.GetComponentsInChildren<Terrain>(true).ToArray();
164+
if (overrideLightmapSettings)
165+
{
166+
var serializedObject = new SerializedObject(terrains);
167+
serializedObject.FindProperty("m_ScaleInLightmap").floatValue = lightmapScaleOffset;
168+
if (lightmapParameters) serializedObject.FindProperty("m_LightmapParameters").objectReferenceValue = lightmapParameters;
169+
serializedObject.ApplyModifiedProperties();
170+
}
171+
172+
foreach (var terrain in terrains)
173+
{
174+
if (overrideTerrainGroupingId)
175+
{
176+
Undo.RecordObject(terrain, "Override Terrain");
177+
terrain.groupingID = terrainGroupingId;
178+
}
179+
180+
if (overrideTerrainMaterialTemplate)
181+
{
182+
Undo.RecordObject(terrain, "Override Terrain");
183+
terrain.materialTemplate = terrainMaterialTemplate;
184+
}
185+
}
154186
}
155187
#endif
156188
}

0 commit comments

Comments
 (0)