Skip to content
Trigger

Gameplay / Trigger

Trigger Class

Trigger

When interacting with triggers, events can be triggered. All triggers are similar, but differ in shape - there are boxes and spheres - triggers use these shapes to determine whether other objects collide and activate them.

Trigger is a very useful tool. You can use Trigger to achieve many interesting playing methods, such as create a script and placing it in the Trigger sub level, and at the same time placing a gold coin model in the Trigger sub level. Use onEnter event to complete the effect of character entering the Trigger range and gold coins disappearing.

Precautions

Each end operates without automatic sync

Usage example: Mount the following script under the object manager trigger.

ts
@Component
export default class TriggerExample extends Script {
    //When the script is instanced, this function will be call before the first frame update
    protected async onStart(): Promise<void> {
        // Get the Trigger attached to the current script
        let Trigger = this.gameObject as Trigger
        // Bind the entry trigger event
        Trigger.onEnter.add((obj) => {
            // Output Log
            console.log("OnEnter:" + obj.name);
        });
        // Bind the departure trigger event
        Trigger.onLeave.add((obj) => {
            // Output Log
            console.log("OnLeave:" + obj.name);
        });
    }
}
@Component
export default class TriggerExample extends Script {
    //When the script is instanced, this function will be call before the first frame update
    protected async onStart(): Promise<void> {
        // Get the Trigger attached to the current script
        let Trigger = this.gameObject as Trigger
        // Bind the entry trigger event
        Trigger.onEnter.add((obj) => {
            // Output Log
            console.log("OnEnter:" + obj.name);
        });
        // Bind the departure trigger event
        Trigger.onLeave.add((obj) => {
            // Output Log
            console.log("OnLeave:" + obj.name);
        });
    }
}

Hierarchy

Table of contents

Properties

onEnter: MulticastDelegate<(gameObject: GameObject) => void>
Enter the Trigger event
onLeave: MulticastDelegate<(gameObject: GameObject) => void>
Leave Trigger Event
click

Properties

onBeforeDestroyDelegate: MulticastDelegate<() => void> other
Event callback before object destruction
onCustomPropertyChange: Readonly<MulticastDelegate<(path: string, value: unknown, oldValue: unknown) => void>> other
Monitor custom attribute synchronization events
onDestroyDelegate: MulticastDelegate<() => void> other
Event callback after object destruction
onPropertyChange: Readonly<MulticastDelegate<(path: string, value: unknown, oldValue: unknown) => void>>
Monitor system replicated events

Accessors

enabled(): boolean
Has it been enabled
shape(): TriggerShapeType
Trigger shape
click

Accessors

actorFlagValue(): number other
Get object tags
actorLevel(): number other
Obtain Actor Level
assetId(): string other
Retrieve the UID of the resource currently being used by the object
gameObjectId(): string other
Get the unique identification of an object (a string that uniquely identifies an object).
isDestroyed(): boolean other
Has the current object been destroyed
isReady(): boolean other
Current object status
localTransform(): Transform other
Local transformation of the current object
name(): string other
Return the current object name
netStatus(): NetStatus other
Get the current object synchronization status
parent(): GameObject other
Retrieve the current parent object
tag(): string other
Get the tag of the current object
worldTransform(): Transform other
Current object world transformation

Methods

checkInArea(gameObject: GameObject): boolean other
Determine whether the specified object is in the trigger area
click

Methods

addComponent<T: extends Script<T>>(constructor: (...args: unknown[]) => T: extends Script<T>, bInReplicates?: boolean): T: extends Script<T> other
Add a script component
asyncGetChildByName(name: string): Promise<GameObject> other
Asynchronous search for sub objects based on their names
asyncReady(): Promise<GameObject> other
Return after the object is ready
clone(gameObjectInfo?: GameObjectInfo): GameObject other
Copy Objects
destroy(): void other
delete object
getBoundingBox(nonColliding?: boolean, includeFromChild?: boolean, outer?: Vector): Vector other
Get the size of the object's bounding box
getBounds(onlyCollidingComponents: boolean, originOuter: Vector, boxExtentOuter: Vector, includeFromChild?: boolean): void other
Obtain object boundaries
getChildByGameObjectId(gameObjectId: string): GameObject other
Search for sub objects based on gameObjectid
getChildByName(name: string): GameObject other
Search for sub objects by name
getChildByPath(path: string): GameObject other
Find sub objects according to path
getChildren(): GameObject[] other
Obtain sub objects
getChildrenBoundingBoxCenter(outer?: Vector): Vector other
Get the center point of all child objects' bounding box (not including the parent object, if the parent object is unavailable, return [0,0,0])
getChildrenByName(name: string): GameObject[] other
Search for all sub objects by name
getComponent<T: extends Script<T>>(constructor?: (...args: unknown[]) => T: extends Script<T>): T: extends Script<T> other
Get the component of the specified type
getComponentPropertys<T: extends Script<T>>(constructor: (...args: unknown[]) => T: extends Script<T>): Map<string, IPropertyOptions> other
Get property of script component
getComponents<T: extends Script<T>>(constructor?: (...args: unknown[]) => T: extends Script<T>): T: extends Script<T>[] other
Get all component of the specified type
getCustomProperties(): string[] other
Get all customize property
getCustomProperty<T: extends CustomPropertyType>(propertyName: string): T: extends CustomPropertyType other
Get customize property
getCustomPropertyChangeDelegate(property): Readonly<MulticastDelegate<(path: string, value: unknown, oldValue: unknown) => void>> other
Event proxy triggered when a given object property is modified
getPropertyChangeDelegate(property): Readonly<MulticastDelegate<(path: string, value: unknown, oldValue: unknown) => void>> other
Event proxy triggered when a given object property is modified
getVisibility(): boolean other
Obtain whether the object is displayed
isPrefabActor(): boolean other
Return whether the current object is a prefabricated body
moveBy(velocity: Vector, isLocal?: boolean): void other
Smoothly move an object over time according to a given velocity vector
moveTo(targetPosition: Vector, time: number, isLocal?: boolean, onComplete?: () => void): void other
Smoothly move from the current position to the target position within the specified time
rotateBy(rotation: Quaternion Rotation, multiplier: number, isLocal?: boolean): void other
Rotate the object smoothly over time according to the given rotation amount
rotateTo(targetRotation: Quaternion Rotation, time: number, isLocal?: boolean, onComplete?: () => void): void other
Smoothly changes from the current rotation to the target rotation within the specified time
scaleBy(scale: Vector, isLocal?: boolean): void other
Smoothly scale objects over time using a given scaling vector per second
scaleTo(targetScale: Vector, time: number, isLocal?: boolean, onComplete?: () => void): void other
Smoothly changes from the current scale to the target scale within the specified time
setAbsolute(absolutePosition?: boolean, absoluteRotation?: boolean, absoluteScale?: boolean): void other
Set whether the object localTransform is relative to the parent object or the world
setCustomProperty(propertyName: string, value: undefined CustomPropertyType): void other
Set custom attributes
setVisibility(status: boolean PropertyStatus, propagateToChildren?: boolean): void other
Set whether the object is displayed
stopMove(): void other
Interrupt further movement of moveTo() and moveBy()
stopRotate(): void other
Interrupt further rotation from rotateTo() or rotateBy()
stopScale(): void other
Interrupt further scale from ScaleTo() or ScaleBy()
asyncFindGameObjectById(gameObjectId: string): Promise<GameObject> other
Asynchronous search for GameObject through gameObjectid
asyncGetGameObjectByPath(path: string): Promise<GameObject> other
Asynchronously find objects through path
asyncSpawn<T: extends GameObject<T>>(assetId: string, gameObjectInfo?: GameObjectInfo): Promise<T: extends GameObject<T>> other
Asynchronous construction of an object
bulkPivotTo(gameObjects: GameObject[], transforms: Transform[]): void other
Batch set position
findGameObjectById(gameObjectId: string): GameObject other
Search for objects through gameObjectid
findGameObjectByName(name: string): GameObject other
Search for objects by name
findGameObjectsByName(name: string): GameObject[] other
Search for objects by name
findGameObjectsByTag(tag: string): GameObject[] other
Get objects through customize tag
getGameObjectByPath(path: string): GameObject other
Search for objects through paths
spawn<T: extends GameObject<T>>(assetId: string, gameObjectInfo?: GameObjectInfo): T: extends GameObject<T> other
Construct an object

Properties


onEnter

onEnter: MulticastDelegate<(gameObject: GameObject) => void>

Enter the Trigger event


onLeave

onLeave: MulticastDelegate<(gameObject: GameObject) => void>

Leave Trigger Event

Accessors


enabled

get enabled(): boolean

set enabled(value): void

Has it been enabled

Returns

boolean

Has it been enabled

Parameters

valueboolean

shape

get shape(): TriggerShapeType

set shape(value): void

Trigger shape

Returns

TriggerShapeType

Trigger shape

Parameters

valueTriggerShapeType

Methods


checkInArea

checkInArea(gameObject): boolean other

Determine whether the specified object is in the trigger area

Parameters

gameObject GameObjectUsage: Pass in the object to be judged

Returns

booleanTrue: within the scope of Trigger