From fcdf1613fce04e2bb804a716006c92a1c35c99ec Mon Sep 17 00:00:00 2001 From: liteng <930372551@qq.com> Date: Sun, 14 Oct 2018 09:47:17 +0800 Subject: [PATCH] =?UTF-8?q?=E7=B2=92=E5=AD=90=E5=8F=91=E5=B0=84=E5=99=A8?= =?UTF-8?q?=E5=BA=8F=E5=88=97=E5=8C=96=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../objects/ParticleEmitterSerializer.js | 70 ++++++++++++++++++- 1 file changed, 67 insertions(+), 3 deletions(-) diff --git a/ShadowEditor.Web/src/serialization/objects/ParticleEmitterSerializer.js b/ShadowEditor.Web/src/serialization/objects/ParticleEmitterSerializer.js index 995de547..39972c7f 100644 --- a/ShadowEditor.Web/src/serialization/objects/ParticleEmitterSerializer.js +++ b/ShadowEditor.Web/src/serialization/objects/ParticleEmitterSerializer.js @@ -1,5 +1,6 @@ import BaseSerializer from '../BaseSerializer'; -import MeshSerializer from '../core/MeshSerializer'; +import Object3DSerializer from '../core/Object3DSerializer'; +import TexturesSerializer from '../texture/TexturesSerializer'; /** * ParticleEmitterSerializer @@ -13,9 +14,72 @@ ParticleEmitterSerializer.prototype = Object.create(BaseSerializer.prototype); ParticleEmitterSerializer.prototype.constructor = ParticleEmitterSerializer; ParticleEmitterSerializer.prototype.toJSON = function (obj) { - var json = MeshSerializer.prototype.toJSON.call(this, obj); + var json = Object3DSerializer.prototype.toJSON.call(this, obj); - debugger + json.children.length = 0; + + var group = json.userData.group; + var emitter = json.userData.emitter; + + json.userData.group = { + texture: (new TexturesSerializer()).toJSON(group.texture) + }; + + json.userData.emitter = { + position: { + value: { + x: emitter.position.value.x, + y: emitter.position.value.y, + z: emitter.position.value.z + }, + spread: { + x: emitter.position.spread.x, + y: emitter.position.spread.y, + z: emitter.position.spread.z + } + }, + velocity: { + value: { + x: emitter.velocity.value.x, + y: emitter.velocity.value.y, + z: emitter.velocity.value.z + }, + spread: { + x: emitter.velocity.spread.x, + y: emitter.velocity.spread.y, + z: emitter.velocity.spread.z + } + }, + acceleration: { + value: { + x: emitter.acceleration.value.x, + y: emitter.acceleration.value.y, + z: emitter.acceleration.value.z + }, + spread: { + x: emitter.acceleration.spread.x, + y: emitter.acceleration.spread.y, + z: emitter.acceleration.spread.z + } + }, + color: { + value: [ + emitter.color.value[0].getHexString(), + emitter.color.value[1].getHexString(), + emitter.color.value[2].getHexString(), + emitter.color.value[3].getHexString() + ] + }, + size: { + value: emitter.size.value, + spread: emitter.size.spread + }, + particleCount: emitter.particleCount, + maxAge: { + value: emitter.maxAge.value, + spread: emitter.maxAge.spread + } + }; return json; };