Creating actions
With a basic action class out of the way, we can start implementing specific action logic that our agents can use. Each action will consist of three callback functions—initialization, update, and cleanup—that we'll use when we instantiate our action instances.
The idle action
The first action we'll create is the basic and default choice from our agents that are going forward. The idle action wraps the IDLE
animation request to our soldier's animation controller. As the animation controller will continue looping our IDLE
command until a new command is queued, we'll time our idle action to run for 2 seconds, and then terminate it to allow another action to run:
SoldierActions.lua
:
function SoldierActions_IdleCleanUp(userData) -- No cleanup is required for idling. end function SoldierActions_IdleInitialize(userData) userData.controller:QueueCommand( userData.agent, SoldierController.Commands.IDLE); -- Since idle is a looping animation, cut...