123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 |
- /**
- * 组件数据接口,记录粒子系统的成员属性和对应类型
- * 新增的属性字段需要在IParticleData和ParticleSchema中添加
- */
- export interface IParticleData {
- neverCull?: boolean;
- /**
- * 渲染模式。
- */
- renderMode?: string;
- uniforms?: [string, string][];
- states?: [string, string][];
- renderModel?: xrFrameSystem.GLTFModel;
- /**
- * 纹理信息。
- */
- texture?: xrFrameSystem.Texture;
- /**
- * 是否使用噪声纹理。
- */
- useNoise?: boolean;
- /**
- * 使用自定义的噪声纹理。
- */
- noiseTexture?: xrFrameSystem.Texture;
- /**
- * 最大粒子数目。
- */
- capacity?: number;
- /**
- * 每秒粒子发射数。
- */
- emitRate?: number;
- /**
- * 初始角度。
- */
- angle?: number[];
- /**
- * 粒子系统启动延时秒数。
- */
- delay?: number;
- /**
- * y轴方向上的每秒位移。
- */
- gravity?: number;
- /**
- * 初始大小。
- */
- size?: number[];
- /**
- * 粒子在x轴方向上的大小尺度。
- */
- scaleX?: number[];
- /**
- * 粒子在y轴方向上的大小尺度。
- */
- scaleY?: number[];
- /**
- * 速度。
- */
- speed?: number[];
- /**
- * 生命周期时长。
- */
- lifeTime?: number[];
- /**
- * 粒子初始颜色左区间。
- */
- startColor?: number[];
- /**
- * 粒子初始颜色右区间。
- */
- startColor2?: number[];
- /**
- * 粒子结束时颜色。
- */
- endColor?: number[];
- /**
- * 角速度。
- */
- angularSpeed?: number[];
- /**
- * 发射器类型。
- */
- emitterType?: string;
- /**
- * 发射器属性配置。
- */
- emitterProps?: [string, string][];
- /**
- * 粒子系统生命周期时长。
- */
- stopDuration?: number;
- /**
- * 粒子预渲染周期数。
- */
- prewarmCycles?: number;
- /**
- * 速度阻尼系数。
- */
- speedDampen?: number;
- /**
- * 动画图集信息。
- */
- atlas?: xrFrameSystem.Atlas;
- /**
- * 图集切换速度。
- */
- atlasSpeed?: number;
- /**
- * 是否随机播放图集。
- */
- atlasRandom?: boolean;
- /**
- * 是否循环播放图集。
- */
- atlasLoop?: boolean;
- /**
- * 指定图集帧名。
- */
- atlasFrames?: string[];
- /**
- * 网格信息。
- */
- mesh?: xrFrameSystem.Geometry;
- sizeChange?: [string, string][];
- colorChange?: [string, string][];
- speedChange?: [string, string][];
- burstCount?: number;
- burstTime?: number;
- burstCycle?: number;
- burstInterval?: number;
- }
- /**
- * 此处声明属性在框架内运行时的真正类型
- */
- export const ParticleSchema: xrFrameSystem.IComponentSchema = {
- renderModel: { type: 'gltf' },
- neverCull: { type: 'boolean', defaultValue: false },
- renderMode: { type: 'string', defaultValue: 'default' },
- uniforms: { type: 'map' },
- states: { type: 'map' },
- texture: { type: 'texture' },
- useNoise: { type: 'boolean' },
- noiseTexture: { type: 'texture' },
- capacity: { type: 'number' },
- emitRate: { type: 'number' },
- angle: { type: 'number-array' },
- delay: { type: 'number' },
- gravity: { type: 'number' },
- emitterPosition: { type: 'number-array' },
- size: { type: 'number-array' },
- scaleX: { type: 'number-array' },
- scaleY: { type: 'number-array' },
- speed: { type: 'number-array' },
- lifeTime: { type: 'number-array' },
- startColor: { type: 'number-array' },
- startColor2: { type: 'number-array' },
- endColor: { type: 'number-array' },
- angularSpeed: { type: 'number-array' },
- emitterType: { type: 'string' },
- emitterProps: { type: 'map' },
- stopDuration: { type: 'number' },
- prewarmCycles: { type: 'number' },
- speedDampen: { type: 'number', defaultValue: 0 },
- atlas: { type: 'atlas' },
- atlasSpeed: { type: 'number', defaultValue: 1 },
- atlasRandom: { type: 'boolean' },
- atlasLoop: { type: 'boolean', defaultValue: true },
- atlasFrames: { type: 'array' },
- mesh: { type: 'geometry' },
- sizeChange: { type: 'map' },
- colorChange: { type: 'map' },
- speedChange: { type: 'map' },
- burstCount: { type: 'number' },
- burstTime: { type: 'number' },
- burstCycle: { type: 'number' },
- burstInterval: { type: 'number' },
- }
|