Projectile
Projectile is the base class for bullets. It lets you slot AudioClips and AnimationClips to play during various states of the Projectile, as well as determine if the Projectile should be reflected upon contact with a Reflector component. It’s designed to be used in conjunction with a ContactDamage component so that it will damage actors it touches. It’s also especially effective when paired with a RexPool to spawn the individual instances of the Projectile.
Public Methods
public void Fire(Vector2 _startingPosition, Direction.Horizontal _horizontal, Direction.Vertical _vertical = Direction.Vertical.Neutral, RexPool _parentSpawnPool = null)
Fires the projectile. _startingPosition governs the location where the projectile spawns and begins firing from. _horizontal governs the horizontal direction the projectile fires in, and _vertical is the vertical direction. _parentSpawnPool passes in the RexPool which spawned the Projectile, if any, and allows the Projectile to communicate with it for certain events.
public override void Clear()
Either despawns the Projectile if parentSpawnPool is set, or calls Destroy() if not.
public void OnSpawned()
Initializes the starting values for the projectile. This is called automatically by the Projectile’s OnEnable().
Public Members
public DestroyOnHit willDestroyOnHit
Properties determining if this Projectile is destroyed when it hits the Player or enemies.
public Reflection reflection
Properties relating to what can reflect this Projectile and how it behaves once reflected.
public Animations animations
Here, you can slot AnimationClips for the default, spawning, and death of this Projectile.
public Sounds sounds
Here, you can slot AudioClips for the fire, death, and reflection of this Projectile.
public Vector2 movementSpeed
The movement speed of this projectile on both the X and Y axes.
public ContactDamage contactDamage
If this GameObject has a ContactDamage component, it can be slotted here. Doing so allows the contact damage properties to change if the Projectile is reflected.
public bool willDestroyWhenOffscreen
Whether or not the Projectile will be destroyed as soon as it leaves the field of view of the main camera.
public bool willDestroyWhenSceneChanges
Whether or not the Projectile will be destroyed if a new scene is loaded.
public bool willShakeScreenOnDeath
Whether or not the Projectile will shake the screen when it dies.
public float rotationSpeed
Setting this higher than 0 lets the projectile sprite rotate each frame it’s being fired.
public CollisionSide ricochetOnTerrainCollision
This has checkboxes for onCeiling, onFloor, onLeft, and onRight. The projectile will ricochet when it collides with terrain on any of the checked sides.
public CollisionSide destroyOnTerrainCollision
This has checkboxes for onCeiling, onFloor, onLeft, and onRight. The projectile will be destroyed when it collides with terrain on any of the checked sides.
public float acceleration
If set above 0.0f, the projectile will accelerate to its top speed by this value.
public DirectionChange directionChange
Contains values for how many frames the projectile will move in a certain direction before reversing direction. If swapOnActorFlip is True, the left and right values will reverse when the actor firing this projectile turns around.
public int horizontalFlipsAllowed
Used in conjunction with the directionChange values set above to determine how many times the projectile is allowed to reverse its horizontal direction.
public int verticalFlipsAllowed
Used in conjunction with the directionChange values set above to determine how many times the projectile is allowed to reverse its vertical direction.
public RexPool parentSpawnPool
If this is spawned via a RexPool, set this to the pool that spawned it; this will enable it to despawn from the same pool.
public RexActor spawningActor
A reference to the RexActor that spawned this, if any.
public Attack spawningAttack
A reference to the Attack that spawned this, if any.
public Direction.Horizontal horizontalDirection
The horizontal direction the Projectile is facing.
public Direction.Vertical verticalDirection
The vertical direction the Projectile is facing.