using UnityEngine; namespace CTS { public class CTSRuntimeTerrainHelper : MonoBehaviour { public CTSProfile m_CTSProfile; public bool m_autoApplyProfile = true; public Terrain m_terrain; private void Awake() { if (m_terrain == null) { m_terrain = GetComponent(); } if (m_autoApplyProfile) { if (m_terrain == null) { ApplyProfileToActiveTerrains(); } else { ApplyProfileToTerrain(); } } } private void Start() { if (m_terrain == null) { m_terrain = GetComponent(); } if (m_autoApplyProfile) { if (m_terrain == null) { ApplyProfileToActiveTerrains(); } else { ApplyProfileToTerrain(); } } } private void OnGenerateCompleted(Terrain terrain) { if (terrain != null) { m_terrain = terrain; ApplyProfileToTerrain(); } } public void ApplyProfileToTerrain() { if (m_terrain != null) { CTSSingleton.Instance.AddCTSToTerrain(m_terrain); CTSSingleton.Instance.BroadcastProfileSelect(m_CTSProfile, m_terrain); } } public void ApplyProfileToTerrain(Terrain terrain) { CTSSingleton.Instance.AddCTSToTerrain(terrain); CTSSingleton.Instance.BroadcastProfileSelect(m_CTSProfile, terrain); } public void ApplyProfileToActiveTerrains() { CTSSingleton.Instance.AddCTSToAllTerrains(); CTSSingleton.Instance.BroadcastProfileSelect(m_CTSProfile); } } }