45 lines
1.3 KiB
C#
45 lines
1.3 KiB
C#
using UnityEngine;
|
|
|
|
namespace Game.Scripts.Runtime.Data
|
|
{
|
|
[CreateAssetMenu(menuName = "Game/Spawning/Spawner Config", fileName = "SpawnerConfig")]
|
|
public class SpawnerConfig : ScriptableObject
|
|
{
|
|
[Header("Radii")]
|
|
public float MinSpawnRadius = 8f;
|
|
public float MaxSpawnRadius = 24f;
|
|
|
|
[Header("Timing")]
|
|
public float SpawnInterval = 2f;
|
|
public AnimationCurve SpawnRateOverTime = AnimationCurve.Linear(0f, 1f, 1f, 1f);
|
|
|
|
[Header("Limits")]
|
|
public int MaxConcurrent = 30;
|
|
public int MaxPlacementAttempts = 6;
|
|
public int PrewarmPerType = 4;
|
|
public int PoolHardCapPerType = 60;
|
|
|
|
[Header("Placement")]
|
|
public float GroundRaycastHeight = 5f;
|
|
public float MaxHeightDelta = 4f;
|
|
public bool UseLineOfSight = false;
|
|
|
|
[Header("Layers")]
|
|
public LayerMask GroundMask = Physics.DefaultRaycastLayers;
|
|
public LayerMask ObstacleMask = Physics.DefaultRaycastLayers;
|
|
|
|
[Header("NavMesh")]
|
|
public int NavMeshAreaMask = -1;
|
|
|
|
[Header("RNG")]
|
|
[SerializeField] private bool useSeed;
|
|
[SerializeField] private int seedValue = 0;
|
|
|
|
[Header("Debug")]
|
|
public bool DrawGizmos = false;
|
|
public int GizmoSampleCount = 16;
|
|
|
|
public int? Seed => useSeed ? seedValue : (int?)null;
|
|
}
|
|
}
|