Raycast Barrel
The RaycastBarrel
is a hitscan-based barrel implementation. It uses Unity’s Physics.Raycast
to instantly detect and damage targets along a line.
Summary
This component:
- Inherits from
Barrel
- Fires an invisible ray to simulate a bullet
- Detects
Hitbox
components and applies damage - Optionally spawns VFX at the point of impact
Fields
Field | Type | Description |
---|---|---|
_range | float | Max distance the ray travels. |
_layers | LayerMask | Layers that the raycast can interact with. |
_damagePoints | MinMaxCurve | Range of possible damage values. |
_impacts | GameObject[] | Prefabs to spawn at impact (e.g., decals or sparks). |
_OnHit | UnityEvent<Vector3, Vector3> | Invoked on successful hit with impact position and normal. |
Public Methods
Method | Description |
---|---|
override void Shoot() | Fires a raycast and applies damage to any hit Hitbox . |
void SpawnImpact(Vector3 point, Vector3 normal) | Instantiates visual effects at the hit location. |
Behavior
- Evaluates damage using
MinMaxCurve.Evaluate()
with two random values. - Searches for a
Hitbox
on the collider hit by the ray. - If a hitbox is found, applies damage via
Hitbox.Hurt(DamageData)
. - Triggers
OnHit
UnityEvent and optional impact prefabs.
Use Cases
- Rifles, pistols, machine guns
- Instant-fire weapons like lasers or tasers (visual-only)
- Sci-fi blasters without travel time
Tip
To prevent friendly fire, configure your LayerMask
to only include enemy layers.
Note
You can chain custom logic to _OnHit
to spawn particles, sounds, or UI effects.