82 lines
1.5 KiB
C#
82 lines
1.5 KiB
C#
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<Terrain>();
|
|
}
|
|
if (m_autoApplyProfile)
|
|
{
|
|
if (m_terrain == null)
|
|
{
|
|
ApplyProfileToActiveTerrains();
|
|
}
|
|
else
|
|
{
|
|
ApplyProfileToTerrain();
|
|
}
|
|
}
|
|
}
|
|
|
|
private void Start()
|
|
{
|
|
if (m_terrain == null)
|
|
{
|
|
m_terrain = GetComponent<Terrain>();
|
|
}
|
|
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<CTSTerrainManager>.Instance.AddCTSToTerrain(m_terrain);
|
|
CTSSingleton<CTSTerrainManager>.Instance.BroadcastProfileSelect(m_CTSProfile, m_terrain);
|
|
}
|
|
}
|
|
|
|
public void ApplyProfileToTerrain(Terrain terrain)
|
|
{
|
|
CTSSingleton<CTSTerrainManager>.Instance.AddCTSToTerrain(terrain);
|
|
CTSSingleton<CTSTerrainManager>.Instance.BroadcastProfileSelect(m_CTSProfile, terrain);
|
|
}
|
|
|
|
public void ApplyProfileToActiveTerrains()
|
|
{
|
|
CTSSingleton<CTSTerrainManager>.Instance.AddCTSToAllTerrains();
|
|
CTSSingleton<CTSTerrainManager>.Instance.BroadcastProfileSelect(m_CTSProfile);
|
|
}
|
|
}
|
|
}
|