using System.Collections.Generic; using UnityEngine; namespace Ashwild.Harvesting { /// /// Zone de dispersion posée dans la scène (boîte rectangulaire alignée sur les axes). /// Porte une liste de "layers" (chacun = un ScatterProfile + son pinceau). Les zones /// no-go sont définies par des ScatterExclusionVolume enfants. Aucune logique runtime : /// conteneur de données + gizmos, piloté par ScatterZoneEditor. /// [DisallowMultipleComponent] public class ScatterZone : MonoBehaviour { [System.Serializable] public class Layer { public ScatterProfile profile; public bool enabled = true; public float brushRadius = 5f; [Range(0f, 1f)] public float brushStrength = 0.5f; } [Tooltip("Dimensions de la boîte (centrée sur le transform). X/Z = emprise au sol, Y = hauteur du gizmo.")] public Vector3 size = new Vector3(50f, 10f, 50f); public List layers = new List(); /// Coin (min X, min Z) de l'emprise au sol, à la hauteur du transform. public Vector3 MinCorner => new Vector3( transform.position.x - size.x * 0.5f, transform.position.y, transform.position.z - size.z * 0.5f); private void OnDrawGizmos() { Gizmos.color = new Color(0.3f, 0.8f, 1f, 0.25f); Gizmos.DrawWireCube(transform.position, size); } } }