Here is a quick summary of all the major parts of TargetPro.
Targetable
Putting this on a GameObject marks it as targetable by
TargetTracker. Without this component, a GameObject will be ignored by
the system.
This component offers several events which you can subscribe to. For example, "OnHit", which allows you to determine what
should happen to the target based on the provided HitEffect data struct.
See the Targetable component documentation for details.
Target Tracker
The Target Tracker component is responsible for sorting Targets in range based on the options you provide. It allows you to set the size and shape of the Perimieter (which detects and tracks the targets), determines how many targets you want to work with and caches information to increase performance and ease development.
You can either work directly with this component via the scripting API, or use a FireController to act on the target list.
See the Target Tracker component documentation for details.Fire Controller
The Fire Controller automates many flexible possibilities regarding the usage of the TargetTracker information. Notify targets that they have been hit or launch a projectiles, trigger effects, and more.
The Fire Controller can automatically notify targets when they are hit, and pass them a
HitEffect data struct with all the parameters necessary to describe an
effect. For example, without any code, you can make a gun turret fire at a target only when it is directly in front of the gun.
The Fire Controller also offers a number of useful events which you can use for any custom handling
See the Fire Controller component documentation for details.HitEffect Data Struct
A struct which contains all the information needed to define any effect you can think of, from laser hits, to nukes, to magic attacks. This simple script object is passed to you by delegates when an event occurs, such as a Targetable's OnHit event, or by directly referencing a TargetTracker or Projectile.