Pickups
Pickups are special objects that trigger when the player touches them.
The Pickup
base class is defined in Data/Scripts/Pickup.as
.
Game pickup classes that derive from it are located at Data/Scripts/Pickups/
(health, ammo, weapon, …).
Creating new pickups
Existing behavior
You can create new pickups with different parameters for existing behavior by creating new node objects.
You can use the game editor for that.
The node object should have a RigidBody
component, and a ScriptInstance
component that uses Main.as
as the script file, and the class of the pickup you want to use. You can look at existing pickup node objects for example, they’re located at Data/Objects/Pickup/
.
New behavior
If you want to create a pickup with new behavior, you need to create a new pickup class that inherits from the class Pickup
.
bool onPickup()
will be called when the player collides with the pickup. Override it and specify what will happen. Return true
if picking up was secessful and the pickup should be removed, or false
so it won’t be removed. For example PickupHealth
returns false
if the player already has full health.
You need to include your new script files into Main.as
script module, so the game will know about your classes.
Detection shape
If you want to use a different collision shape for detecting player collision instead of the pickup’s general collision shape, for example using a bigger shape if the pickup is too small and hard to pick up, you need to create a child node and name it detection
, and inside it create the CollisionShape you want to use, and a RigidBody with Use Gravity
turned off and Is Kinematic
and Is Trigger
turned on.
- Previous
- Next