private ComputeBuffer GetDynamicDataBuffer() { DustMote[] data = new DustMote[ParticlesCount]; for (int i = 0; i < ParticlesCount; i++) { Vector3 sphere = UnityEngine.Random.insideUnitSphere; float lifetime = ParticleLifespan * UnityEngine.Random.value; data[i] = new DustMote() { LifetimeRemaining = lifetime, RandomX = sphere.x, RandomY = sphere.y }; } ComputeBuffer ret = new ComputeBuffer(ParticlesCount, DustMoteStride); ret.SetData(data); return(ret); }
public void PickUpDust(DustMote pocket) { OnDustPickedUpEvent.Raise(); dustController.PickupDust(pocket.dustValue); pocket.PickUp(this); }