426KOWJWOX7ZE24UIJCIHRI5KUZYO6NIGK7KC2HOONFDX242UYIQC
OD77QV5KZG5MS7WJB6ZBNKPIODOKD4EWS6RBD3YFWJOHOAAWCL3QC
2RUZ7TTRT7SMZT2V7YWUCCTJJXNRT2LNJ2QBBVN4RMREMOGMGMHQC
HUULCHM5GFGZ7GKLCULFHC333LQ3LBI62VKII3YL5O4C5CDGCT4AC
YI7M5RWLKUG256YXK6CGZKUPDCNHREU2PGV344L2IV24FF5PHG3AC
FQZF2IY4T2F7KEVSHMFID35WNAU55CRRDF6XEXZB7PYZH26UGYPQC
DTKCWM4J7PFNWAAES3RZHQGDA6PTDNX4TZVOXAKF5V7LCZBI3XUAC
TKLR43RQKXB47J2YVVSJ7CAZAJZYOKXSDUXAUOVQMFUN73KZVUVQC
ROTMK5LNNK7T5YXVOMUODVMCQWIHPZYOME4WDIAMZJ4VXD7SOEBAC
CD5FF75KTOBTMVMTMCKMR6F5DFKOF26I5K43ITNHGBI3ZAZHA4RAC
HXTSBPAP75A7EC4RKWYQMVPPHPNZFPHUORBZWDHGEB6MPAGI7G7AC
public static Unit<T> Min(Unit<T> a, Unit<T> b) => (Unit<T>)Math.Min(a._value, b._value);
public static Unit<T> Max(Unit<T> a, Unit<T> b) => (Unit<T>)Math.Max(a._value, b._value);
public static Unit<T> Clamp(Unit<T> value, Unit<T> min, Unit<T> max) => (Unit<T>)Math.Clamp(value._value, min._value, max._value);
// Its problematic to cast a real cone, so we cast the full path and later
// calculate if the potential target is withint the cone.
RaycastHit[] hits = Physics.SphereCastAll(origin.position, radius, origin.forward, Length, LayerMask.NameToLayer("units"));
[Range(0f,360f)]
public float Angle;
public IEnumerable<Transform> GetAffectedUnits(Transform origin) {
// Its problematic to cast a real cone, so we cast the sphere and later
// calculate if the potential target is within the cone.
RaycastHit[] hits = Physics.SphereCastAll(origin.position, Radius, origin.forward, 0, LayerMask.NameToLayer("units"));