AbstractStable identity for this component, unique within a session. Auto-generated for runtime-created components; the editor overwrites it with a persistent id when projecting a saved document so references survive save / load / undo.
The owning GameObject; assigned by addComponent before onAttach runs.
The simulation clock of the scene this component belongs to. Read inside
update (or any time after the GameObject is added to a scene) for
absolute time, frame count, FPS, and timeScale-aware delta — e.g.
this.time.elapsed, this.time.delta, this.time.frameCount.
this.time.delta equals the dt argument passed to update, so
components can ignore that argument entirely and pull everything from here.
Called once when the component is added to a GameObject. Override to acquire references to siblings/children or initialize resources.
Called once when the component is removed from its GameObject. Override to release resources or unsubscribe from events.
Called every frame by the GameObject's update traversal.
Frame delta time in seconds.
Called every frame by the GameObject's render traversal, after update and any input/controller mutations to the transform. Override to refresh per-frame state that render passes consume (e.g. Camera recomputes its cached view/projection matrices here).
Active render context (provides canvas width/height etc.).
Abstract base class for all behaviors attached to a GameObject.
Subclasses add behavior or rendering data to a GameObject. The instance is bound to its owner via GameObject.addComponent, which sets Component.gameObject and then calls Component.onAttach. Component.update is invoked once per frame as part of the scene's simulation traversal; Component.updateRender runs once per frame after simulation, when render passes are about to consume cached state (e.g. Camera uses it to refresh view/projection matrices). Component.onDetach runs when the component is removed via GameObject.removeComponent.