ProtectedconstructorOptionalisInternalConstructor: booleanActivates or deactivates the component.
The returned active state also accounts for the active state of the parent SceneObject.
Sets the base damage required to break an average-sized piece.
Sets the collision impulse to damage multiplier. When the DamageOnCollision flag is set, collision impulse * this value
= damage applied.
Sets the current health of the destructable.
Sets the multiplier applied when on the damage radius when receiving damage.
Sets the threshold below which damage is ignored.
Sets the multiplier applied to the impulse strength when damage is applied.
Sets the lifetime of debris pieces in seconds. After this time, debris will be automatically cleaned up. Set to 0 for infinite lifetime.
Creates an array that contains all currently tracked debris scene objects.
Sets how piece size influences damage/health thresholds.
Sets the flags controlling destructable behavior.
Sets the destruction resource containing pre-computed fracture data.
Sets the destruction resource containing pre-computed fracture data.
Sets the destruction resource containing pre-computed fracture data.
Various flags set on the component that affect it's behavior.
Returns the health as a percentage [0...1].
Determines whether the component itself is active, without accounting for the active state of the parent scene object.
Returns true if the destructable has been destroyed.
Returns true if the destructable is intact (not destroyed).
Determines if the component is currently active, enabled and running.
Sets the LOD screen coverage threshold (in percent) for debris.
For each additional LOD level, the screen coverage is halved (e.g. 0.05, 0.025, 0.0125, ...).
Sets the maximum collision damage that can be applied.
It is recommended to set this value to a bit higher than the base damage to break value.
Sets the maximum health of the destructable.
Determines the cases that will trigger the onTransformChanged event.
Returns the PhysicsScene this node is being simulated on.
The signed execution priority of the component.
Determines order of execution of this component in relation to other components, higher priorities will execute earlier.
The priority value determines the order of initialize, enable and update calls.
Valid priorities are in the range [-100...100], other priorities are reserved for internal use.
The priority should not be modified after onCreate has been called.
The default priority for user implement components is -10. BuiltinComponent have a default priority of 0. However, instances that have dependencies or are a dependency to another component might have non zero default priorities. For example, the Camera component has a default priority of 50 as other components may depend on the camera being initialized early. The Rigidbody component has a default priority of 22 and Joint components have a priority of 20 as the joint depends on fully initialized rigid bodies.
Sets the falloff exponent for damage beyond DamageRadius.
Returns the SceneInstance this node is attached to.
Returns the SceneObject this component is attached to.
Gets the current destruction state.
Applies damage to the destructable.
The amount of damage to apply.
Optionalposition: Immutable<Vector3>The optional world position where damage was applied. If not specified, the destructable's world position is used.
Optionaldirection: Immutable<Vector3>The optional direction from which damage was applied.
Optionalradius: numberThe optional radius of the damage area. Default is 0.25f, equals 25cm.
Optionalimpulse: numberThe optional impulse force to apply to debris. Default is 1.0f.
OptionalsourceComponent: ComponentOptional component that caused the damage.
True if the damage was applied (object was not already destroyed).
Applies damage using a DamageData struct.
The damage information.
True if the damage was applied (object was not already destroyed).
Destroys the component, removing it from its scene object and stopping component updates.
Optionalimmediate: booleanIf true the component will be fully destroyed immediately. This means that objects that are still referencing this component might fail. Normally destruction is delayed until the end of the frame to give other objects a chance to stop using it.
VirtualReturns the bounds of the visible content for this component in local space, i.e. relative to the scene object's transform.
An object with the bounding box and bounding sphere or null, if the component has no bounds.
Checks if the component has a specific ComponentFlag bit flag set.
The flag to check.
ProtectedonProtectedonProtectedonVirtualCalled every time a component is placed into the Stopped state.
This method may be called during component destruction, if the component wasn't already in ScenePlayState.Stopped state during destruction. When called during destruction, it is called before onDestroy.
ProtectedonVirtualCalled every time a component leaves the ScenePlayState.Stopped state.
This method might be called during component creation, if the requirements for leaving the stopped state are met. One such case would be a component class that has the runInEditor attribute. When called during creation it is called after onInitialize.
Called at fixed time intervals (e.g. 60 times per frame). Only called if the component is in ScenePlayState.Playing state.
ProtectedonVirtualCalled once when the component first leaves the ScenePlayState.Stopped state.
This method might be called during component creation, if the requirements for leaving the stopped state are met. One such case would be a component class that has the runInEditor attribute. When called during creation it is called after onCreate.
VirtualCalled once per frame, after all other components received their onUpdate invocation. Only called if the component is in ScenePlayState.Playing state.
This method should only be implemented if your component needs logic that implements on other component or SceneObject changes performend in onUpdate. An example could be a camera controller logic that updates in response to changes to the object that is being tracked.
ProtectedonVirtualCalled when the script domain has been refreshed or when the component is initialized. During initialization it is called after onInitialize but before onEnable.
ProtectedonVirtualCalled when the component's parent SceneObject has changed.
The transform flags.
This method is only called if TransformChangedFlag.Transform is set on the Component.notifyFlags. The method will also not be called if the component is currently in the ScenePlayState.Stopped state.
To get the event for editor components that are active outside the simulation, attach the runInEditor attribute to your component class.
VirtualCalled once per frame. Only called if the component is in ScenePlayState.Playing state.
Sets or unsets the specified ComponentFlag bit flag on the instance.
The flag to set.
True to set the flag.
Registers the coroutine for the specified component using the provided args as arguments.
true if the coroutine was registered.
The coroutine will be called for the first time when the coroutine subsystem runs for update events.
There is no guarantee with regards to the order of how coroutines are invoked.
Coroutines are a great way for time-deferred or delayed system. To implement a coroutine simply add a
generator method to your component and register it as coroutine:
public *myCoroutine(text:string)
{
const endTime:number = Time.realElapsed + 3;
while(Time.realElapsed < endTime)
{
yield true;
}
Debug.log("This code will be invoked after 3 seconds with the text=" + text);
}
To register the function simply call
this.startCoroutine(this.myCoroutine, "Hello World!");
The function will be invoked once the coroutine runs. The coroutine function can yield the program
control flow by using the keyword yield. The coroutine will then stop execution at that point,
and pick up the execution in the next update event, right after the yield keyword that caused
the coroutine to pause.
With helper functions such as waitForSeconds or waitForAsyncOp it is easy to create coroutines that pause for a set time interval.
Registers the coroutine for the specified component using the provided args as arguments.
true if the coroutine was registered.
The coroutine will be called for the first time when the coroutine subsystem runs for fixedUpdate events.
There is no guarantee with regards to the order of how coroutines are invoked.
Coroutines are a great way for time-deferred or delayed system. To implement a coroutine simply add a
generator method to your component and register it as coroutine:
public *myCoroutine(text:string)
{
const endTime:number = Time.realElapsed + 3;
while(Time.realElapsed < endTime)
{
yield true;
}
Debug.log("This code will be invoked after 3 seconds!");
}
To register the function simply call
this.startCoroutine(this.myCoroutine, "Hello World!");
The function will be invoked once the coroutine runs. The coroutine function can yield the program
control flow by using the keyword yield. The coroutine will then stop execution at that point,
and pick up the execution in the next fixedUpdate event, right after the yield keyword that caused
the coroutine to pause.
With helper functions such as waitForSeconds or waitForAsyncOp it is easy to create coroutines that pause for a set time interval.
Stops the coroutine for the specified component.
The coroutine to stop.
true if the coroutine was registered.
StaticgetLocates a rsx object by its sceneRuntimeID and UUID.
The runtime ID of the SceneInstance of the object.
The UUID of the object to retrieve.
The object or null if no object with given sceneRuntimeID and uuid has been registered
Component that enables meshes to be fractured into debris pieces when damaged beyond their health threshold.
Works in conjunction with Renderable for mesh visualization and Rigidbody/Collider for physics-based debris simulation.
Note
The destruction system requires a valid DestructionResource to provide the FracturePiece data at runtime.