Skip to content
WaterVolume

Gameplay / WaterVolume

WaterVolume Class

Water Volume


Drag the WaterVolume to adjust the size of the Water Volume, and the character will switch to swimming when entering the Water Volume.

Usage example: create a script named "WaterVolumeExample", place it in the object bar, open the script, enter the following code, replace the GUID, save it, run the game, and you will be able to get whether the character is in the swimming area corresponding to the GUID by pressing F1.

ts
@Component
export default class WaterVolumeExample extends Script {
    // When the script is instantiated, this function will be called before the first frame update
    protected async onStart(): Promise<void> {
        // The UID can be filled in according to the actual situation, and the object ID can be copied by right clicking in the editor object manager
        let WaterVolume = await GameObject.asyncFindGameObjectById(`GUID`) as WaterVolume;
        if(SystemUtil.isClient())
        {
            InputUtil.onKeyDown(Keys.F1,()=>{
                // F1 key notification to obtain fluid friction force
                Console.log ("The current fluid friction force in the swimming area is:"+WaterVolume. fluidFriction);
            });
            InputUtil.onKeyDown(Keys.F2,()=>{
                // F2 key notification to obtain whether buoyancy is currently enabled
                if (WaterVolume.buoyancyEnabled) {
                    Console.log ("The current swimming area has activated buoyancy");
                } else {
                    Console.log ("The current swimming area has not activated buoyancy");
                }
            });
            InputUtil.onKeyDown(Keys.F3,()=>{
                // F3 key informs to obtain liquid density (used to calculate buoyancy)
                Console.log ("The current density of the swimming area is:"+WaterVolume. density);
            });
        }
    }
}
@Component
export default class WaterVolumeExample extends Script {
    // When the script is instantiated, this function will be called before the first frame update
    protected async onStart(): Promise<void> {
        // The UID can be filled in according to the actual situation, and the object ID can be copied by right clicking in the editor object manager
        let WaterVolume = await GameObject.asyncFindGameObjectById(`GUID`) as WaterVolume;
        if(SystemUtil.isClient())
        {
            InputUtil.onKeyDown(Keys.F1,()=>{
                // F1 key notification to obtain fluid friction force
                Console.log ("The current fluid friction force in the swimming area is:"+WaterVolume. fluidFriction);
            });
            InputUtil.onKeyDown(Keys.F2,()=>{
                // F2 key notification to obtain whether buoyancy is currently enabled
                if (WaterVolume.buoyancyEnabled) {
                    Console.log ("The current swimming area has activated buoyancy");
                } else {
                    Console.log ("The current swimming area has not activated buoyancy");
                }
            });
            InputUtil.onKeyDown(Keys.F3,()=>{
                // F3 key informs to obtain liquid density (used to calculate buoyancy)
                Console.log ("The current density of the swimming area is:"+WaterVolume. density);
            });
        }
    }
}

Hierarchy

Table of contents

Properties

onEnter: MulticastGameObjectDelegate
Incident of entering Water Volume
onLeave: MulticastGameObjectDelegate
Event of leaving Water Volume
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

buoyancyEnabled(): boolean other
Get whether to enable enable buoyancy
deepColor(): LinearColor other
Obtain the deep color of water bodies
density(): number other
Obtaining density of water body (used to calculate buoyancy)
divingEnabled(): boolean other
Get Diving
flowAngle(): number other
Obtain the angle of water waves
flowSpeed(): number other
Obtain water wave velocity
flowTile(): number other
Obtain the density of water waves
fluidFriction(): number other
Obtain fluid friction force
normalFlat(): number other
Obtain the intensity of water waves
preset(): WaterPreset other
Get preset, only effective for panel values
surfaceColor(): LinearColor other
Obtain the shallow color of the water body
transmittance(): number other
Obtain water transparency
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

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: MulticastGameObjectDelegate

Incident of entering Water Volume


onLeave

onLeave: MulticastGameObjectDelegate

Event of leaving Water Volume

Accessors


buoyancyEnabled

get buoyancyEnabled(): boolean other

set buoyancyEnabled(newStatus): void other

Get whether to enable enable buoyancy

Default

false

Returns

booleanIs buoyancy enabled in the current swimming area

The buoyancy effect of the opening/closing area will no longer provide physical simulation calculations of "buoyancy" when closed to save performance.

Parameters

newStatus booleanUsage: set whether the swimming area enable water buoyancy

deepColor

get deepColor(): LinearColor other

set deepColor(value): void other

Obtain the deep color of water bodies

Returns

LinearColorCurrent deep color of swimming area

Set the deep color of the water body

Parameters

value LinearColorUsage: Set deep color for swimming area

density

get density(): number other

set density(newDensity): void other

Obtaining density of water body (used to calculate buoyancy)

Default

10

Returns

numberCurrent water density

Set the water density (used to calculate buoyancy), the higher the density, the greater the buoyancy.

Value range [0-10000]

Parameters

newDensity numberUsage: new water density

divingEnabled

get divingEnabled(): boolean other

set divingEnabled(value): void other

Get Diving

Returns

booleanWhether diving is enabled in the current swimming area

Set up diving

Parameters

value booleanUsage: set whether diving is enabled in the swimming area

flowAngle

get flowAngle(): number other

set flowAngle(value): void other

Obtain the angle of water waves

Returns

numberCurrent swimming area water wave angle

Set the angle of water waves

Parameters

value numberUsage: Set the angle of water waves in the swimming area

flowSpeed

get flowSpeed(): number other

set flowSpeed(value): void other

Obtain water wave velocity

Returns

numberCurrent water wave velocity in the swimming area

Set water wave speed

Parameters

value numberUsage: Set the water wave velocity in the swimming area

flowTile

get flowTile(): number other

set flowTile(value): void other

Obtain the density of water waves

Returns

numberCurrent density of water waves in swimming area

Set water wave density

Parameters

value numberUsage: Set the water wave density in the swimming area

fluidFriction

get fluidFriction(): number other

Obtain fluid friction force

Returns

numberCurrent fluid friction in the swimming area

normalFlat

get normalFlat(): number other

set normalFlat(value): void other

Obtain the intensity of water waves

Returns

numberCurrent water wave intensity in the swimming area

Set water wave intensity

Parameters

value numberUsage: Set the intensity of water waves in the swimming area

preset

get preset(): WaterPreset other

set preset(NewPreset): void other

Get preset, only effective for panel values

Returns

WaterPresetReturn to preset settings

Set presets

Parameters

NewPreset WaterPresetUsage: preset enumeration

surfaceColor

get surfaceColor(): LinearColor other

set surfaceColor(value): void other

Obtain the shallow color of the water body

Returns

LinearColorCurrent swimming area light color

Set the shallow color of the water body

Parameters

value LinearColorUsage: Set shallow color for swimming area

transmittance

get transmittance(): number other

set transmittance(value): void other

Obtain water transparency

Returns

numberCurrent water transparency in the swimming area

Set water transparency

Parameters

value numberUsage: Set the transparency of the swimming area water body

Methods