OnTriggerLeave - ObjectReference
Jump to navigation
Jump to search
Member of: ObjectReference Script (Papyrus)
Event called when the object reference is a trigger volume and has been left.
Syntax[edit | edit source]
Event OnTriggerLeave(ObjectReference akActionRef)Parameters[edit | edit source]
- akActionRef: The ObjectReference that left the volume.
Examples[edit | edit source]
Event OnTriggerLeave(ObjectReference akActionRef)
Debug.Trace(akActionRef + " just left us!")
EndEventNotes[edit | edit source]
- This event can be received out of order with OnTriggerEnter, so it's ideal to keep a count instead of a simple true/false value for when things are inside the trigger.
Int InTrigger = 0
Event OnTriggerEnter(ObjectReference akTriggerRef)
if (InTrigger == 0)
if akTriggerRef == Game.GetPlayer()
InTrigger += 1
debug.notification("Entered Trigger")
endif
endif
EndEvent
Event OnTriggerLeave(ObjectReference akTriggerRef)
if (InTrigger > 0)
if akTriggerRef == Game.GetPlayer()
InTrigger -= 1
debug.notification("Leaving Trigger")
endif
endif
EndEvent- If an ObjectReference's 3D unloads, that counts as the ObjectReference "leaving" the trigger.
- If the trigger's own 3D unloads, that also counts as all ObjectReferences inside the trigger "leaving" the trigger.
- If the player leaves the current loaded area, that unloads 3D for all ObjectReferences in the space they're departing, potentially firing OnTriggerLeave. The OnCellDetach event is not likely to run to completion before the refs begin to unload their 3D en masse, so you can't e.g. disable the trigger on detach to avoid being hit with unwanted OnTriggerLeave events.