Abstract Class: Script
Base for user scripts. Each subclass is registered as a script component and ScriptSystem drives the lifecycle, in Unity's order. A script is running while it's enabled and its entity is active in the hierarchy: OnAttach (Unity's Awake) → OnEnable → OnStart (before its first OnUpdate) → per fixed tick: OnUpdate, then OnLateUpdate after every Update-phase system → per rendered frame: OnFrameUpdate.
- OnAttach runs once, the first time the entity is active — even if the script itself is disabled — and after a scene load / prefab spawn has finished, so saved field values and the entity's other components are there. An entity that starts inactive gets it on activation.
- OnEnable / OnDisable run the moment it starts / stops running (SetActive, reparenting,
enabled, a scene load or prefab spawn), and OnDisable runs before OnDestroy. - OnDestroy runs only for a script that got OnAttach. Only during a run (Play / a build), never in the editor's edit mode. Event hooks on the entity's own events: pointer (needs Interaction or Button; events bubble, so a parent's scripts hear its children's), OnClick (Button), OnInput* (InputField), OnToggle* / OnSliderChanged / OnPageChanged, OnParentChanged, OnParticleSystemStopped / OnParticleCollision (a particle system on the entity), and the 2D physics hooks — OnCollision2D / OnTrigger2D (a collider on the entity, or one of its Rigidbody2D's), OnJointBreak2D. Schedule* / OnGlobal helpers auto-bind
thisand auto-cancel on destroy.
Extends
Constructors
Constructor
ts
new Script(): Script;enabled is a plain field on Component. On a script, switching it calls OnEnable / OnDisable right away (Unity), so it becomes an accessor on the instance. Defined here, after Component's field initializer; subclasses mustn't redeclare enabled.
Returns
Script
Overrides
Properties
| Property | Modifier | Type | Default value | Description | Inherited from |
|---|---|---|---|---|---|
dirty | public | boolean | true | - | Component.dirty |
enabled | public | boolean | true | - | Component.enabled |
entity | public | Entity | undefined | Set by ScriptSystem on attach — read-only from user code. | - |
scene | public | Scene | undefined | - | - |
Methods
EmitGlobal()
ts
EmitGlobal<T>(name, payload?): void;Type Parameters
| Type Parameter | Default type |
|---|---|
T | unknown |
Parameters
| Parameter | Type |
|---|---|
name | string |
payload? | T |
Returns
void
OffAllGlobal()
ts
OffAllGlobal(): void;Returns
void
OffGlobal()
ts
OffGlobal<T>(name, listener?): void;Type Parameters
| Type Parameter | Default type |
|---|---|
T | unknown |
Parameters
| Parameter | Type |
|---|---|
name | string |
listener? | (payload) => void |
Returns
void
OnAttach()
ts
OnAttach(): void;Returns
void
OnceGlobal()
ts
OnceGlobal<T>(name, listener): EventUnsubscribe;Type Parameters
| Type Parameter | Default type |
|---|---|
T | unknown |
Parameters
| Parameter | Type |
|---|---|
name | string |
listener | (this, payload) => void |
Returns
OnClick()
ts
OnClick(_e): void;A Button on this entity was clicked (honours interactable, unlike OnPointerTap).
Parameters
| Parameter | Type |
|---|---|
_e | PointerEntityEvent |
Returns
void
OnCollisionEnter2D()
ts
OnCollisionEnter2D(_collision): void;2D physics, after the physics step (Unity's). Enter / Exit once per touching pair, Stay each step in between. Collisions get this side's Collision2D, triggers the other collider.
Parameters
| Parameter | Type |
|---|---|
_collision | Collision2D |
Returns
void
OnCollisionExit2D()
ts
OnCollisionExit2D(_collision): void;Parameters
| Parameter | Type |
|---|---|
_collision | Collision2D |
Returns
void
OnCollisionStay2D()
ts
OnCollisionStay2D(_collision): void;Parameters
| Parameter | Type |
|---|---|
_collision | Collision2D |
Returns
void
OnDestroy()
ts
OnDestroy(): void;Returns
void
OnDisable()
ts
OnDisable(): void;Returns
void
OnEnable()
ts
OnEnable(): void;Returns
void
OnFrameUpdate()
ts
OnFrameUpdate(_dt): void;Once per rendered frame with that frame's time-scaled dt (variable) — visual smoothing on displays faster than the fixed step. Not called while the game is paused.
Parameters
| Parameter | Type |
|---|---|
_dt | number |
Returns
void
OnGlobal()
ts
OnGlobal<T>(name, listener): EventUnsubscribe;Type Parameters
| Type Parameter | Default type |
|---|---|
T | unknown |
Parameters
| Parameter | Type |
|---|---|
name | string |
listener | (this, payload) => void |
Returns
OnInputChanged()
ts
OnInputChanged(_text): void;Parameters
| Parameter | Type |
|---|---|
_text | string |
Returns
void
OnInputEndEdit()
ts
OnInputEndEdit(_text): void;Parameters
| Parameter | Type |
|---|---|
_text | string |
Returns
void
OnInputFocus()
ts
OnInputFocus(_text): void;An InputField on this entity: focused, edited (each change), submitted (Enter), edit ended.
Parameters
| Parameter | Type |
|---|---|
_text | string |
Returns
void
OnInputSubmit()
ts
OnInputSubmit(_text): void;Parameters
| Parameter | Type |
|---|---|
_text | string |
Returns
void
OnJointBreak2D()
ts
OnJointBreak2D(_info): void;A joint on this entity broke (its breakForce / breakTorque was exceeded) and was disabled.
Parameters
| Parameter | Type |
|---|---|
_info | JointBreak2D |
Returns
void
OnLateUpdate()
ts
OnLateUpdate(_dt): void;Same tick, after every Update-phase system (animation, tweens, scheduled callbacks, buttons) — follow cameras, react to animated values.
Parameters
| Parameter | Type |
|---|---|
_dt | number |
Returns
void
OnPageChanged()
ts
OnPageChanged(_page): void;Parameters
| Parameter | Type |
|---|---|
_page | number |
Returns
void
OnParentChanged()
ts
OnParentChanged(_oldParent, _newParent): void;Parameters
| Parameter | Type |
|---|---|
_oldParent | Entity | null |
_newParent | Entity | null |
Returns
void
OnParticleCollision()
ts
OnParticleCollision(_hit): void;One of this entity's particles hit a collision plane (sendCollisionEvents on); world position.
Parameters
| Parameter | Type |
|---|---|
_hit | { x: number; y: number; } |
_hit.x | number |
_hit.y | number |
Returns
void
OnParticleSystemStopped()
ts
OnParticleSystemStopped(_system): void;This entity's particle system stopped emitting and its last particle is gone.
Parameters
| Parameter | Type |
|---|---|
_system | ParticleSystem2DComponent |
Returns
void
OnPointerDown()
ts
OnPointerDown(_e): void;Parameters
| Parameter | Type |
|---|---|
_e | PointerEntityEvent |
Returns
void
OnPointerEnter()
ts
OnPointerEnter(_e): void;Parameters
| Parameter | Type |
|---|---|
_e | PointerEntityEvent |
Returns
void
OnPointerLeave()
ts
OnPointerLeave(_e): void;Parameters
| Parameter | Type |
|---|---|
_e | PointerEntityEvent |
Returns
void
OnPointerMove()
ts
OnPointerMove(_e): void;Parameters
| Parameter | Type |
|---|---|
_e | PointerEntityEvent |
Returns
void
OnPointerTap()
ts
OnPointerTap(_e): void;Parameters
| Parameter | Type |
|---|---|
_e | PointerEntityEvent |
Returns
void
OnPointerUp()
ts
OnPointerUp(_e): void;Parameters
| Parameter | Type |
|---|---|
_e | PointerEntityEvent |
Returns
void
OnSliderChanged()
ts
OnSliderChanged(_value): void;Parameters
| Parameter | Type |
|---|---|
_value | number |
Returns
void
OnStart()
ts
OnStart(): void;Returns
void
OnToggleChanged()
ts
OnToggleChanged(_isOn): void;UI controls on this entity: a Toggle flipped, a ToggleGroup's on toggle changed (null = none on), a Slider's value changed, a PageView settled on a page.
Parameters
| Parameter | Type |
|---|---|
_isOn | boolean |
Returns
void
OnToggleGroupChanged()
ts
OnToggleGroupChanged(_on): void;Parameters
| Parameter | Type |
|---|---|
_on | Entity | null |
Returns
void
OnTransitionHidden()
ts
OnTransitionHidden(): void;Returns
void
OnTransitionShown()
ts
OnTransitionShown(): void;A UITransition on this entity finished showing / hiding.
Returns
void
OnTriggerEnter2D()
ts
OnTriggerEnter2D(_other): void;Parameters
| Parameter | Type |
|---|---|
_other | Collider2DComponent |
Returns
void
OnTriggerExit2D()
ts
OnTriggerExit2D(_other): void;Parameters
| Parameter | Type |
|---|---|
_other | Collider2DComponent |
Returns
void
OnTriggerStay2D()
ts
OnTriggerStay2D(_other): void;Parameters
| Parameter | Type |
|---|---|
_other | Collider2DComponent |
Returns
void
OnUpdate()
ts
OnUpdate(_dt): void;Fixed step (Engine TPS, 60 by default), time-scaled — gameplay logic.
Parameters
| Parameter | Type |
|---|---|
_dt | number |
Returns
void
Schedule()
ts
Schedule(
callback,
interval,
repeat?,
delay?
): number;repeat = -1 for infinite. delay defaults to interval.
Parameters
| Parameter | Type | Default value |
|---|---|---|
callback | (this) => void | undefined |
interval | number | undefined |
repeat | number | -1 |
delay? | number | undefined |
Returns
number
ScheduleNextFrame()
ts
ScheduleNextFrame(callback): number;Parameters
| Parameter | Type |
|---|---|
callback | (this) => void |
Returns
number
ScheduleOnce()
ts
ScheduleOnce(callback, delay): number;Parameters
| Parameter | Type |
|---|---|
callback | (this) => void |
delay | number |
Returns
number
Unschedule()
ts
Unschedule(handle): void;Parameters
| Parameter | Type |
|---|---|
handle | number |
Returns
void
UnscheduleAll()
ts
UnscheduleAll(): void;Returns
void