using System; using UnityEngine; namespace NonSolid { public enum AreaOfEffectType { Circle, Line, Rectangle, Polygon, Hexagon } public class AreaOfEffect : MonoBehaviour { [SerializeField] private AreaOfEffectType _areaOfEffectType; [SerializeField] private float _radius = 10.0f; // circle [SerializeField] private float _length = 10.0f; // line [SerializeField] private float _width = 1.0f; // line [SerializeField] private Rect _rect; // rectangle private void OnCollisionEnter(Collision other) { float area = 0.0f; switch (_areaOfEffectType) { case AreaOfEffectType.Circle: area = Mathf.PI * _radius * _radius; break; case AreaOfEffectType.Line: break; case AreaOfEffectType.Rectangle: break; case AreaOfEffectType.Polygon: break; case AreaOfEffectType.Hexagon: break; default: throw new ArgumentOutOfRangeException(); } } } }