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.
@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
↳
WaterVolume
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 whether to enable enable buoyancy
false Returns
| The buoyancy effect of the opening/closing area will no longer provide physical simulation calculations of "buoyancy" when closed to save performance. Parameters
|
deepColor
• | • | ||||
---|---|---|---|---|---|
Obtain the deep color of water bodies Returns
| Set the deep color of the water body Parameters
|
density
• | • | ||||
---|---|---|---|---|---|
Obtaining density of water body (used to calculate buoyancy)
10 Returns
| Set the water density (used to calculate buoyancy), the higher the density, the greater the buoyancy. Value range [0-10000] Parameters
|
divingEnabled
• | • | ||||
---|---|---|---|---|---|
Get Diving Returns
| Set up diving Parameters
|
flowAngle
• | • | ||||
---|---|---|---|---|---|
Obtain the angle of water waves Returns
| Set the angle of water waves Parameters
|
flowSpeed
• | • | ||||
---|---|---|---|---|---|
Obtain water wave velocity Returns
| Set water wave speed Parameters
|
flowTile
• | • | ||||
---|---|---|---|---|---|
Obtain the density of water waves Returns
| Set water wave density Parameters
|
fluidFriction
• | ||
---|---|---|
Obtain fluid friction force Returns
|
normalFlat
• | • | ||||
---|---|---|---|---|---|
Obtain the intensity of water waves Returns
| Set water wave intensity Parameters
|
preset
• | • | ||||
---|---|---|---|---|---|
Get preset, only effective for panel values Returns
| Set presets Parameters
|
surfaceColor
• | • | ||||
---|---|---|---|---|---|
Obtain the shallow color of the water body Returns
| Set the shallow color of the water body Parameters
|
transmittance
• | • | ||||
---|---|---|---|---|---|
Obtain water transparency Returns
| Set water transparency Parameters
|