ScatterProfile ScriptableObject

The ScatterProfile asset stores all rules, prefab weights, and distribution parameters for a scatter configuration.

using UnityEngine;
using ByteLura.EnviroScatter.Editor.Profiles;

[CreateAssetMenu(fileName = "NewScatterProfile", menuName = "ByteLura/EnviroScatter/Scatter Profile")]
public class ScatterProfile : ScriptableObject
{
    public string profileName = "Default Profile";
    public SurfaceType surfaceType = SurfaceType.Terrain;
    
    [Range(1, 5000)]
    public int density = 200;
    public int seed = 4242;
    public bool useRandomSeed = true;
    
    [Range(0f, 1f)]
    public float normalAlignment = 0.5f;
    
    public Vector3 minScale = Vector3.one * 0.8f;
    public Vector3 maxScale = Vector3.one * 1.2f;
    
    public float minSlope = 0f;
    public float maxSlope = 45f;
    public float minHeight = -100f;
    public float maxHeight = 1000f;
    public float minSpacing = 1.5f;
    
    public List<ScatterPrefabEntry> prefabs = new List<ScatterPrefabEntry>();
}