fix(particle): 修复粒子系统在浏览器预览中的资产加载和渲染 (#290)
* fix(editor): 修复粒子实体创建和优化检视器 - 添加 effects 分类到右键菜单,修复粒子实体无法创建的问题 - 添加粒子效果的本地化标签 - 简化粒子组件检视器,优先显示资产文件选择 - 高级属性只在未选择资产时显示,且默认折叠 - 添加可折叠的属性分组提升用户体验 * fix(particle): 修复粒子系统在浏览器预览中的资产加载和渲染 - 添加粒子 Gizmo 支持,显示发射形状并响应 Transform 缩放/旋转 - 修复资产热重载:添加 reloadAsset() 方法和 assets:refresh 事件监听 - 修复 VectorFieldEditors 数值输入精度(step 改为 0.01) - 修复浏览器预览中粒子资产加载失败的问题: - 将相对路径转换为绝对路径以正确复制资产文件 - 使用原始 GUID 而非生成的 GUID 构建 asset catalog - 初始化全局 assetManager 单例的 catalog 和 loader - 在 GameRuntime 的 systemContext 中添加 engineIntegration - 公开 AssetManager.initializeFromCatalog 方法供运行时使用
This commit is contained in:
@@ -106,6 +106,7 @@ export class ParticleRenderDataProvider implements IRenderDataProvider {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (totalParticles === 0) return;
|
||||
|
||||
// 确保缓冲区足够大 | Ensure buffers are large enough
|
||||
@@ -183,6 +184,11 @@ export class ParticleRenderDataProvider implements IRenderDataProvider {
|
||||
}
|
||||
|
||||
if (particleIndex > 0) {
|
||||
// 获取纹理路径(支持多种来源)| Get texture path (support multiple sources)
|
||||
const firstComponent = systems[0]?.component;
|
||||
const asset = firstComponent?.loadedAsset as { textureGuid?: string; texturePath?: string } | null;
|
||||
const texPath = asset?.textureGuid || asset?.texturePath || firstComponent?.textureGuid || undefined;
|
||||
|
||||
// 创建当前组的渲染数据 | Create render data for current group
|
||||
const renderData: ParticleProviderRenderData = {
|
||||
transforms: this._transforms.subarray(0, particleIndex * 7),
|
||||
@@ -191,7 +197,7 @@ export class ParticleRenderDataProvider implements IRenderDataProvider {
|
||||
colors: this._colors.subarray(0, particleIndex),
|
||||
tileCount: particleIndex,
|
||||
sortingOrder,
|
||||
texturePath: systems[0]?.component.textureGuid || undefined
|
||||
texturePath: texPath
|
||||
};
|
||||
|
||||
this._renderDataCache.push(renderData);
|
||||
|
||||
Reference in New Issue
Block a user