Laser Guide
The LaserGuide
script allows projectiles spawned by a ProjectileBarrel
to dynamically follow a target using laser guidance. Players can toggle the laser system on and off at runtime, affecting all active projectiles.
Summary
This component:
- Listens for
LaserFollower
projectiles - Assigns a dynamic
target
to them if laser is active - Allows toggling laser visibility and tracking behavior via input
- Cleans up inactive projectiles on impact
Fields
Field | Type | Description |
---|---|---|
target | Transform | The transform that projectiles will follow when laser is active. |
barrel | ProjectileBarrel | The source barrel responsible for spawning the projectiles. |
laser | GameObject | The laser pointer object shown/hidden on toggle. |
Private Fields
Field | Type | Description |
---|---|---|
controls | WeaponControls | Input mapping for toggling laser guidance. |
laserActive | bool | Whether laser guidance is currently enabled. |
_activeProjectiles | List<LaserFollower> | List of currently active guided projectiles. |
Methods
Method | Description |
---|---|
Start() | Subscribes to projectile spawn and input events. |
ToggleLaser() | Toggles laser tracking and updates all active projectiles accordingly. |
Behavior
- When a projectile with
LaserFollower
is spawned, itstarget
is set based onlaserActive
. - If laser is disabled mid-flight, projectiles will stop tracking.
- Projectiles are removed from the list once their
OnImpact
event triggers. - The system listens to
ShootSecondary
input to toggle.
Requirements
- Projectiles must have a
LaserFollower
component. ProjectileBarrel
must invokeOnProjectileSpawned
.
Use Case Examples
- Laser-guided rockets
- Smart missiles
- Tactical pointers for enemy tracking
Tip
Use SetActive(false)
on the laser GameObject to make the laser visually disappear when guidance is disabled.
Note
This component works best with LaserFollower
-based projectiles that interpret target
.