public ParticleEmitter2D(string id, ParticleEmitterInfo info, int drawLayer, bool postDraw) : base(id) { this.drawLayer = drawLayer; if (postDraw) { PostRenderManager.Add(this); } else { DrawingManager.Add(this); } attachments = new AttachmentPool(info.Attachments); if (info.CycleType != null) { object obj = AssemblyManager.CreateInstance(info.CycleType); if (obj != null) { spawnCycle = obj as IntervalCycle; spawnCycle.OnSpawn += new OnSpawnEvent(GenerateParticles); spawnCycle.OnCompleted += new OnSpawningCompleteEvent(OnCompletedSpawning); } } if (info.EmittionType != null) { object obj = AssemblyManager.CreateInstance(info.EmittionType); if (obj != null) { emittionType = obj as IEmitter2D; } } if (info.RenderType != null) { object obj = AssemblyManager.CreateInstance(info.RenderType); if (obj != null) { renderMethod = obj as IRenderer2D; } } lifeTime = new FloatRange(info.MinLifeTime, info.MaxLifeTime); mass = new FloatRange(info.MinMass, info.MaxMass); }
/// <summary> /// Creates a new Factory. /// </summary> /// <param name="id">The unique identifaction name to give the Factory.</param> public Factory(string id, ParameterCollection spawnType, ParameterCollection spawnObject, ParameterCollection cycleInfo) { this.id = id; spawnObj = spawnObject; object emit = AssemblyManager.CreateInstance(spawnType); if (emit != null) { emitter = emit as IEmitter2D; } object cyc = AssemblyManager.CreateInstance(cycleInfo); if (cyc != null) { cycle = cyc as IntervalCycle; cycle.OnSpawn += new OnSpawnEvent(Spawn); } }
private Vector2 mousePosition; // Position of the mouse in world space /* * PRIVATE HELPERS */ private void Start() { mainCamera = Camera.main; emitter = emitterObj.GetComponent <IEmitter2D>(); }