private void ParseParticleSystems(GameObject gameObject, string emitterId, ref List<BabylonExport.Entities.BabylonParticleSystem> particles) { var particle = gameObject.GetComponent<UnityEditor.BabylonParticleSystem>(); if (particle != null && particle.exportParticle) { var particleSystem = new BabylonExport.Entities.BabylonParticleSystem(); particleSystem.name = (!String.IsNullOrEmpty(particle.particleName)) ? particle.particleName : String.Format("particalSystem#" + Guid.NewGuid().ToString()); particleSystem.emitterId = emitterId; particleSystem.linkToEmitter = true; particleSystem.preventAutoStart = !particle.autoStart; particleSystem.textureMask = particle.textureMask.ToFloat(); particleSystem.updateSpeed = particle.updateSpeed; particleSystem.emitRate = particle.emitRate; particleSystem.gravity = particle.gravity.ToFloat(); particleSystem.blendMode = (int)particle.blendMode; particleSystem.capacity = particle.capacity; particleSystem.color1 = particle.color1.ToFloat(); particleSystem.color2 = particle.color2.ToFloat(); particleSystem.colorDead = particle.colorDead.ToFloat(); particleSystem.direction1 = particle.direction1.ToFloat(); particleSystem.direction2 = particle.direction2.ToFloat(); particleSystem.minEmitBox = particle.minEmitBox.ToFloat(); particleSystem.maxEmitBox = particle.maxEmitBox.ToFloat(); particleSystem.minEmitPower = particle.minEmitPower; particleSystem.maxEmitPower = particle.maxEmitPower; particleSystem.minLifeTime = particle.minLifeTime; particleSystem.maxLifeTime = particle.maxLifeTime; particleSystem.minSize = particle.minSize; particleSystem.maxSize = particle.maxSize; particleSystem.minAngularSpeed = particle.minAngularSpeed; particleSystem.maxAngularSpeed = particle.maxAngularSpeed; particleSystem.targetStopFrame = particle.targetStopFrame; particleSystem.deadAlpha = particle.deadAlpha; if (particle.texture != null) { var babylonTexture = new BabylonTexture(); var texturePath = AssetDatabase.GetAssetPath(particle.texture); CopyTexture(texturePath, particle.texture, babylonTexture); particleSystem.textureName = Path.GetFileName(texturePath); } particles.Add(particleSystem); } }