首页 > 解决方案 > 粒子系统不会在框架中更新

问题描述

我正在尝试为 X 射线管创建模拟,您可以在其中更改电流或电压并查看对电子和光子的影响。我已经将电子设置为带有 aframe-particle-system-component 的粒子系统。(https://www.npmjs.com/package/aframe-particle-system-component/v/1.1.3)现在我正在尝试使用滑块更改粒子系统。问题是滑块的输入被注册,但它对场景中的粒子系统没有影响。

对我来说奇怪的是,当我在 EventListener 之外调用 setAttribute() 函数时,粒子系统会发生变化。但显然,它在一开始只改变一次,这对我没有帮助。

当我在控制台中检查它时,实体的 DOM 确实会更新并显示大小的新值。甚至 aframe 检查器也会显示更新后的大小。但是场景中的实际粒子系统仍然显示我在 html 文件中设置的大小。

这是我为此使用的js代码:

var elektron = document.querySelector('#ParticleSystem');
var scene = document.querySelector('a-scene');

//Var for the two sliders
var rangeCurrent = document.querySelector('#rangeCurrent');
var rangeVoltage = document.querySelector('#rangeVoltage');

var current = rangeCurrent.value;
var voltage = rangeVoltage.value;

//EventListener for the slider
rangeCurrent.addEventListener('change', function(){
  current = rangeCurrent.value;
  elektron.setAttribute('particle-system', {size: current});
});

没有错误消息。

我整天都被这个问题困扰,如果有人能帮助我,我将非常感激!

标签: aframe

解决方案


我终于让它工作了!!在粒子系统组件脚本的 update() 函数中,它们不会使用您使用 setAttribute 定义的新数据启动新的粒子系统。我试图自己修复它一段时间,但无法让它工作。所以我使用了粒子系统组件的早期版本 1.12,现在它可以工作了。


推荐阅读