using System.Runtime.CompilerServices; namespace UnityEngine { public class ParticleEmitter : Component { public extern bool emit { [MethodImpl(MethodImplOptions.InternalCall)] get; [MethodImpl(MethodImplOptions.InternalCall)] set; } public extern float minSize { [MethodImpl(MethodImplOptions.InternalCall)] get; [MethodImpl(MethodImplOptions.InternalCall)] set; } public extern float maxSize { [MethodImpl(MethodImplOptions.InternalCall)] get; [MethodImpl(MethodImplOptions.InternalCall)] set; } public extern float minEnergy { [MethodImpl(MethodImplOptions.InternalCall)] get; [MethodImpl(MethodImplOptions.InternalCall)] set; } public extern float maxEnergy { [MethodImpl(MethodImplOptions.InternalCall)] get; [MethodImpl(MethodImplOptions.InternalCall)] set; } public extern float minEmission { [MethodImpl(MethodImplOptions.InternalCall)] get; [MethodImpl(MethodImplOptions.InternalCall)] set; } public extern float maxEmission { [MethodImpl(MethodImplOptions.InternalCall)] get; [MethodImpl(MethodImplOptions.InternalCall)] set; } public extern float emitterVelocityScale { [MethodImpl(MethodImplOptions.InternalCall)] get; [MethodImpl(MethodImplOptions.InternalCall)] set; } public extern Vector3 worldVelocity { [MethodImpl(MethodImplOptions.InternalCall)] get; [MethodImpl(MethodImplOptions.InternalCall)] set; } public extern Vector3 localVelocity { [MethodImpl(MethodImplOptions.InternalCall)] get; [MethodImpl(MethodImplOptions.InternalCall)] set; } public extern Vector3 rndVelocity { [MethodImpl(MethodImplOptions.InternalCall)] get; [MethodImpl(MethodImplOptions.InternalCall)] set; } public extern bool useWorldSpace { [MethodImpl(MethodImplOptions.InternalCall)] get; [MethodImpl(MethodImplOptions.InternalCall)] set; } public extern Particle[] particles { [MethodImpl(MethodImplOptions.InternalCall)] get; [MethodImpl(MethodImplOptions.InternalCall)] set; } public extern int particleCount { [MethodImpl(MethodImplOptions.InternalCall)] get; } public extern bool enabled { [MethodImpl(MethodImplOptions.InternalCall)] get; [MethodImpl(MethodImplOptions.InternalCall)] set; } [MethodImpl(MethodImplOptions.InternalCall)] public extern void ClearParticles(); public void Emit() { Emit2((int)Random.Range(minEmission, maxEmission)); } public void Emit(int count) { Emit2(count); } public void Emit(Vector3 pos, Vector3 velocity, float size, float energy, Color color) { Emit3(pos, velocity, size, energy, color); } [MethodImpl(MethodImplOptions.InternalCall)] private extern void Emit2(int count); [MethodImpl(MethodImplOptions.InternalCall)] private extern void Emit3(Vector3 pos, Vector3 dir, float size, float energy, Color color); [MethodImpl(MethodImplOptions.InternalCall)] public extern void Simulate(float deltaTime); } }