2 using SiliconStudio.Paradox.Games;
3 using SiliconStudio.Paradox.Games.Mathematics;
4 using SiliconStudio.Paradox.Particles;
10 Random rand =
new Random();
14 var velocityField = particleSystem.GetOrCreateField(ParticleFields.Velocity);
19 var particle = particleSystem.AddParticle();
22 particle.Set(velocityField,
new Vector3((
float)rand.NextDouble() * 30.0f - 15.0f, (float)rand.NextDouble() * 30.0f - 15.0f, (float)rand.NextDouble() * 50.0f));
41 var lifetimeField = particleSystem.GetOrCreateField(
LifetimeField);
44 var particleEnumerator = particleSystem.GetEnumerator();
45 while (particleEnumerator.MoveNext())
47 var particle = particleEnumerator.Current;
48 var lifetime = (
float*)particle[lifetimeField];
53 particleEnumerator.RemoveParticle();
62 var accelerationField = particleSystem.GetOrCreateField(ParticleFields.Acceleration);
64 foreach (var particle
in particleSystem)
66 var acceleration = (
Vector3*)particle[accelerationField];
67 *acceleration =
new Vector3(0.0f);
83 var accelerationField = particleSystem.GetOrCreateField(ParticleFields.Acceleration);
85 foreach (var particle
in particleSystem)
87 var acceleration = (
Vector3*)particle[accelerationField];
97 var accelerationField = particleSystem.GetOrCreateField(ParticleFields.Acceleration);
98 var velocityField = particleSystem.GetOrCreateField(ParticleFields.Velocity);
100 foreach (var particle
in particleSystem)
102 var position = (
Vector3*)particle[particleSystem.Position];
103 var acceleration = (
Vector3*)particle[accelerationField];
104 var velocity = (
Vector3*)particle[velocityField];
105 *velocity += *acceleration * dt;
106 *position += *velocity * dt;
A particle plugin that can updates or process particles.
static readonly ParticleFieldDescription< float > LifetimeField
Particle field storing the particle current lifetime (age).
RemoveOldParticles(float lifetime)
A particle system, containing particles and their updaters.
int ParticleCount
Gets the particle count.
unsafe void Update(ParticleSystem particleSystem, float dt)
unsafe void Update(ParticleSystem particleSystem, float dt)
unsafe void Update(ParticleSystem particleSystem, float dt)
void Update(ParticleSystem particleSystem, float dt)
unsafe void Update(ParticleSystem particleSystem, float dt)
SiliconStudio.Core.Mathematics.Vector3 Vector3
Describes a field for a particle, which can store specific data for every particle.