4.7 KiB
4.7 KiB
| outline | ||
|---|---|---|
|
RockDebris
- 源文件:
packages/sdk/src/effect/RockDebris.ts - 文档位置:
packages/docs/api/effect/RockDebris.md
枚举:RockDebrisModelSourceType
- 作用:落石模型来源类型
| 枚举项 | 值 | 说明 |
|---|---|---|
GENERATED |
"GENERATED" |
使用程序内置的几何体生成落石 |
URL |
"URL" |
使用传入 URL 的模型生成落石 |
接口:RockDebrisOptions
- 作用:RockDebrisOptions 的结构定义。
字段
| 字段名 | 类型 | 必填 | 作用 |
|---|---|---|---|
count |
number |
否 | 生成数量 |
size |
[number, number] |
是 | 随机大小范围 [min, max] |
office |
[number, number] |
是 | XZ 平面随机偏移范围 [min, max] |
speed |
number |
是 | 掉落速度 (units/s) |
startPosition |
THREE.Vector3 |
是 | 开始位置 |
mesh |
THREE.Mesh |
是 | 碰撞 mesh |
modelSourceType |
RockDebrisModelSourceType |
否 | URL 模型来源类型 |
modelUrls |
string[] |
否 | URL 模型地址列表 |
类:RockDebris
- 作用:岩爆碎片效果
构造函数
new RockDebris(options: RockDebrisOptions)
-
作用:创建 RockDebris 实例。
-
入参:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
options |
RockDebrisOptions |
是 | 当前功能对应的配置项。 |
- 出参:
RockDebris - 返回说明:返回当前类实例。
属性
| 属性名 | 可见性 | 类型 | 作用 |
|---|---|---|---|
options |
public |
Required<RockDebrisOptions> |
用于保存 options 对应的数据。 |
rocks |
public |
RockData[] |
用于保存 rocks 的集合数据。 |
active |
public |
boolean |
------ 落石URL模型支持 结束------ |
updateBound |
public |
((data: RenderEventData) => void) | null |
用于保存 updateBound 对应的数据。 |
_matrix |
public readonly |
THREE.Matrix4 |
用于保存 _matrix 对应的数据。 |
_raycaster |
public readonly |
THREE.Raycaster |
用于保存 _raycaster 对应的数据。 |
_rayDirection |
public readonly |
THREE.Vector3 |
用于保存 _rayDirection 对应的数据。 |
SPAWN_MAX_RETRY |
public readonly |
20 |
单个落石生成点的最大重采样次数,防止射线检测陷入无限循环 |
SPAWN_MIN_RAY_DISTANCE |
public readonly |
0.05 |
判定“靠墙”时的最小射线距离下限 |
FALL_LIMIT |
public readonly |
50 |
超出起始点以下多少距离视为未命中,直接回收 |
方法
spawn(): Promise<void>
-
作用:执行 spawn 相关逻辑。
-
入参:无
-
出参:
Promise<void> -
返回说明:返回 Promise,解析结果类型为
void。
start(): void
-
作用:------ 落石落点射线重采样优化 结束------
-
入参:无
-
出参:
void -
返回说明:无返回值。
stop(): void
-
作用:执行 stop 相关逻辑。
-
入参:无
-
出参:
void -
返回说明:无返回值。
update(data: RenderEventData): void
-
作用:更新 update。
-
入参:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
data |
RenderEventData |
是 | 输入数据。 |
- 出参:
void - 返回说明:无返回值。
clear(): void
-
作用:清理 clear。
-
入参:无
-
出参:
void -
返回说明:无返回值。
dispose(): void
-
作用:释放资源并销毁当前实例。
-
入参:无
-
出参:
void -
返回说明:无返回值。
init(): void
-
作用:执行 init 初始化逻辑。
-
入参:无
-
出参:
void -
返回说明:无返回值。
构造示例
- 来源:
packages/demo/src/disasterFormationPanel/TunnelScene/RockBurstPanel.vue
if (!archMesh){
return;
}
debris = new RockDebris({
count: 10,
size: [0.05, 0.1],
office: [-0.3, 0.3],
speed: 3,
startPosition: ROCK_BURST_START_POSITION.clone(),
mesh: archMesh,
// modelSourceType: RockDebrisModelSourceType.URL,
modelSourceType: RockDebrisModelSourceType.GENERATED
});
debrisReady.value = true;
}
函数示例
RockDebris.spawn
- 来源:
packages/demo/src/disasterFormationPanel/TunnelScene/RockBurstPanel.vue
const spawn = () => {
ensureDebris();
ensureRockBurstLabel();
debris?.spawn();
};
Demo 参考
RockDebrisModelSourceType
以下示例文件中可以看到该 API 的实际调用方式:
packages/demo/src/disasterFormationPanel/TunnelScene/RockBurstPanel.vue
RockDebris
以下示例文件中可以看到该 API 的实际调用方式:
packages/demo/src/disasterFormationPanel/TunnelScene/RockBurstPanel.vue