Ability Life Cycle diagram

There's isn't, but the flow is AbilityStarted -> UpdateRotation -> ApplyRotation -> UpdatePosition -> ApplyPosition -> AbilityStopped.
 
Though the core six above is great, it would be awesome to have the full detailed list.

I can make assumptions about CanStartAbility, CanInputStartAbility, their "stop" counterparts, InactiveUpdate vs. Update,
ShouldStopActiveAbility, and all the others, but if there was a full order of the processing flow that would be awesome! I'd be more than happy to make a good looking visual for all users to reference (and maybe even it becomes part of your docs?).
 
Last edited:
This is a bit more detailed:

(initialization):

Awake

Start

(not started yet):

CanInputStartAbility (generally not used except in very specific use cases)

CanStartAbility (preferred)

InactiveUpdate

(can start):

GetStartLocations

ShouldBlockAbilityStart

ShouldStopActiveAbility

AbilityWillStart

(started):

AbilityStarted

(update loop):

Update

UpdateAnimator

UpdateRotation

ApplyRotation

UpdatePosition

ApplyPosition

(after character update):

LateUpdate

(try to stop):

WillTryStopAbility

CanInputStopAbility

CanStopAbility/CanForceStopAbility (depending on if the ability is being force stopped)

(can stop)

AbilityStopped

(destroy)

OnDestroy
 
Awesome Justin, thank you!

Here is a graphic styled to match the existing Unity Life Cycle graphic (with some minor cleanup). If you need the SVG, it's attached (the uploader didn't take .svg) and/or if you want me to update it with some additional contextual notes for certain methods (like the existing notes to the left of a few methods) just let me know.

Feel free to use in the docs.

opsive-ucc-ability-life-cycle.png
 
Top