Example #1
0
 static public int constructor(IntPtr l)
 {
     UnityEngine.ParticleEmitter o;
     o = new UnityEngine.ParticleEmitter();
     pushObject(l, o);
     return(1);
 }
    static void ParticleEmitter_particleCount(JSVCall vc)
    {
        UnityEngine.ParticleEmitter _this = (UnityEngine.ParticleEmitter)vc.csObj;
        var result = _this.particleCount;

        JSApi.setInt32((int)JSApi.SetType.Rval, (System.Int32)(result));
    }
		public ParticleEffectInstanceManager(EffectManager effect_manager, Mesh character_mesh, bool letter_flipped, ParticleEffectSetup effect_setup, AnimationProgressionVariables progression_vars, AnimatePerOptions animate_per, ParticleEmitter particle_emitter = null, ParticleSystem particle_system = null)
		{
			m_particle_emitter = particle_emitter;
			m_particle_system = particle_system;
			m_letter_mesh = character_mesh;
			m_letter_flipped = letter_flipped;
			m_follow_mesh = effect_setup.m_follow_mesh;
			m_duration = effect_setup.m_duration.GetValue(progression_vars, animate_per);
			m_delay = effect_setup.m_delay.GetValue(progression_vars, animate_per);
			m_position_offset = effect_setup.m_position_offset.GetValue(progression_vars, animate_per);
			m_rotation_offset = Quaternion.Euler(effect_setup.m_rotation_offset.GetValue(progression_vars, animate_per));
			m_rotate_with_letter = effect_setup.m_rotate_relative_to_letter;
			m_effect_manager_handle = effect_manager;
			m_active = false;

			if(m_particle_emitter != null)
			{
				m_transform = m_particle_emitter.transform;

				m_particle_emitter.emit = true;
				m_particle_emitter.enabled = false;
			}
			else if(m_particle_system != null)
			{
				m_transform = m_particle_system.transform;

				m_particle_system.playOnAwake = false;
				m_particle_system.Play();
	#if !UNITY_3_5 && UNITY_EDITOR
				p_system_timer = 0;
	#endif
			}
		}
 static void ParticleEmitter_particles(JSVCall vc)
 {
     if (vc.bGet)
     {
         UnityEngine.ParticleEmitter _this = (UnityEngine.ParticleEmitter)vc.csObj;
         var result = _this.particles;
         var arrRet = result;
         for (int i = 0; arrRet != null && i < arrRet.Length; i++)
         {
             JSMgr.datax.setObject((int)JSApi.SetType.SaveAndTempTrace, arrRet[i]);
             JSApi.moveSaveID2Arr(i);
         }
         JSApi.setArrayS((int)JSApi.SetType.Rval, (arrRet != null ? arrRet.Length : 0), true);
     }
     else
     {
         UnityEngine.Particle[] arg0 = JSDataExchangeMgr.GetJSArg <UnityEngine.Particle[]>(() =>
         {
             int jsObjID = JSApi.getObject((int)JSApi.GetType.Arg);
             int length  = JSApi.getArrayLength(jsObjID);
             var ret     = new UnityEngine.Particle[length];
             for (var i = 0; i < length; i++)
             {
                 JSApi.getElement(jsObjID, i);
                 ret[i] = (UnityEngine.Particle)JSMgr.datax.getObject((int)JSApi.GetType.SaveAndRemove);
             }
             return(ret);
         });
         UnityEngine.ParticleEmitter _this = (UnityEngine.ParticleEmitter)vc.csObj;
         _this.particles = arg0;
     }
 }
        public void Init( Vessel v, int type )
        {
            attachedTo = v;
            AsteriodType = type;

            if( AsteriodType == 1 )//Comet
            {
                try
                {
                    MainEmitter = (ParticleEmitter)v.rootPart.gameObject.AddComponent("MeshParticleEmitter");
                    ParticleRender = v.rootPart.gameObject.AddComponent<ParticleRenderer>();
                    ParticleAnim = v.rootPart.gameObject.AddComponent<ParticleAnimator>();

                    ParticleRender.material.mainTexture = Utils.LoadTexture( "GameData/KittopiaSpace/Textures/Default/Glow.png" );

                    MainEmitter.maxSize = 20;
                    MainEmitter.minSize = 10;
                    MainEmitter.maxEnergy = 5;
                    MainEmitter.minEnergy = 2.5f;

                    MainEmitter.useWorldSpace = false;

                    MainEmitter.rndVelocity = new Vector3( 50, 50, 50 );
                    MainEmitter.emit = true;
                }
                catch{}
            }

            CanImpact = false;
        }
 static public int set_rndVelocity(IntPtr l)
 {
     UnityEngine.ParticleEmitter o = (UnityEngine.ParticleEmitter)checkSelf(l);
     UnityEngine.Vector3         v;
     checkType(l, 2, out v);
     o.rndVelocity = v;
     return(0);
 }
 static public int set_particles(IntPtr l)
 {
     UnityEngine.ParticleEmitter o = (UnityEngine.ParticleEmitter)checkSelf(l);
     UnityEngine.Particle[]      v;
     checkType(l, 2, out v);
     o.particles = v;
     return(0);
 }
    static public int set_maxEmission(IntPtr l)
    {
        UnityEngine.ParticleEmitter o = (UnityEngine.ParticleEmitter)checkSelf(l);
        float v;

        checkType(l, 2, out v);
        o.maxEmission = v;
        return(0);
    }
    static public int set_emitterVelocityScale(IntPtr l)
    {
        UnityEngine.ParticleEmitter o = (UnityEngine.ParticleEmitter)checkSelf(l);
        float v;

        checkType(l, 2, out v);
        o.emitterVelocityScale = v;
        return(0);
    }
    static public int set_useWorldSpace(IntPtr l)
    {
        UnityEngine.ParticleEmitter o = (UnityEngine.ParticleEmitter)checkSelf(l);
        bool v;

        checkType(l, 2, out v);
        o.useWorldSpace = v;
        return(0);
    }
    static public int set_rndRotation(IntPtr l)
    {
        UnityEngine.ParticleEmitter o = (UnityEngine.ParticleEmitter)checkSelf(l);
        bool v;

        checkType(l, 2, out v);
        o.rndRotation = v;
        return(0);
    }
    static public int set_rndAngularVelocity(IntPtr l)
    {
        UnityEngine.ParticleEmitter o = (UnityEngine.ParticleEmitter)checkSelf(l);
        float v;

        checkType(l, 2, out v);
        o.rndAngularVelocity = v;
        return(0);
    }
    static public int set_enabled(IntPtr l)
    {
        UnityEngine.ParticleEmitter o = (UnityEngine.ParticleEmitter)checkSelf(l);
        bool v;

        checkType(l, 2, out v);
        o.enabled = v;
        return(0);
    }
 static public int get_enabled(IntPtr l)
 {
     try {
         UnityEngine.ParticleEmitter self = (UnityEngine.ParticleEmitter)checkSelf(l);
         pushValue(l, true);
         pushValue(l, self.enabled);
         return(2);
     }
     catch (Exception e) {
         return(error(l, e));
     }
 }
 static public int ClearParticles(IntPtr l)
 {
     try {
         UnityEngine.ParticleEmitter self = (UnityEngine.ParticleEmitter)checkSelf(l);
         self.ClearParticles();
         pushValue(l, true);
         return(1);
     }
     catch (Exception e) {
         return(error(l, e));
     }
 }
 static public int get_enabled(IntPtr l)
 {
     try {
         UnityEngine.ParticleEmitter self = (UnityEngine.ParticleEmitter)checkSelf(l);
         pushValue(l, self.enabled);
         return(1);
     }
     catch (Exception e) {
         LuaDLL.luaL_error(l, e.ToString());
         return(0);
     }
 }
 static public int ClearParticles(IntPtr l)
 {
     try{
         UnityEngine.ParticleEmitter self = (UnityEngine.ParticleEmitter)checkSelf(l);
         self.ClearParticles();
         return(0);
     }
     catch (Exception e) {
         LuaDLL.luaL_error(l, e.ToString());
         return(0);
     }
 }
 static public int get_rndAngularVelocity(IntPtr l)
 {
     try {
         UnityEngine.ParticleEmitter self = (UnityEngine.ParticleEmitter)checkSelf(l);
         pushValue(l, true);
         pushValue(l, self.rndAngularVelocity);
         return(2);
     }
     catch (Exception e) {
         return(error(l, e));
     }
 }
        /*[ToolTip("This is a tooltip of String Field")]
        [Range(0,1)]
        [SerializeField]
        public float randomValue */


        public void Start()
        {
            _waterfall = transform.FindChild("Water Fountain").particleEmitter;
            StopWaterFall();

            // add send units script
            if (Game.IsSinglePlayer())
                gameObject.AddComponent<SelectAndSendUnitsToTarget>();

            else
                gameObject.AddComponent<SelectAndSendUnitsToTargetMp>();
                
        }
Example #20
0
 static public int constructor(IntPtr l)
 {
     try {
         UnityEngine.ParticleEmitter o;
         o = new UnityEngine.ParticleEmitter();
         pushValue(l, o);
         return(1);
     }
     catch (Exception e) {
         LuaDLL.luaL_error(l, e.ToString());
         return(0);
     }
 }
 static public int constructor(IntPtr l)
 {
     LuaDLL.lua_remove(l, 1);
     UnityEngine.ParticleEmitter o;
     if (matchType(l, 1))
     {
         o = new UnityEngine.ParticleEmitter();
         pushObject(l, o);
         return(1);
     }
     LuaDLL.luaL_error(l, "New object failed.");
     return(0);
 }
 public static int constructor(IntPtr l)
 {
     try {
         UnityEngine.ParticleEmitter o;
         o=new UnityEngine.ParticleEmitter();
         pushValue(l,o);
         return 1;
     }
     catch(Exception e) {
         LuaDLL.luaL_error(l, e.ToString());
         return 0;
     }
 }
 static public int set_enabled(IntPtr l)
 {
     try {
         UnityEngine.ParticleEmitter self = (UnityEngine.ParticleEmitter)checkSelf(l);
         bool v;
         checkType(l, 2, out v);
         self.enabled = v;
         pushValue(l, true);
         return(1);
     }
     catch (Exception e) {
         return(error(l, e));
     }
 }
 static public int set_rndAngularVelocity(IntPtr l)
 {
     try {
         UnityEngine.ParticleEmitter self = (UnityEngine.ParticleEmitter)checkSelf(l);
         float v;
         checkType(l, 2, out v);
         self.rndAngularVelocity = v;
         pushValue(l, true);
         return(1);
     }
     catch (Exception e) {
         return(error(l, e));
     }
 }
 static public int set_enabled(IntPtr l)
 {
     try {
         UnityEngine.ParticleEmitter self = (UnityEngine.ParticleEmitter)checkSelf(l);
         bool v;
         checkType(l, 2, out v);
         self.enabled = v;
         return(0);
     }
     catch (Exception e) {
         LuaDLL.luaL_error(l, e.ToString());
         return(0);
     }
 }
 static public int set_rndAngularVelocity(IntPtr l)
 {
     try {
         UnityEngine.ParticleEmitter self = (UnityEngine.ParticleEmitter)checkSelf(l);
         float v;
         checkType(l, 2, out v);
         self.rndAngularVelocity = v;
         return(0);
     }
     catch (Exception e) {
         LuaDLL.luaL_error(l, e.ToString());
         return(0);
     }
 }
 static public int Simulate(IntPtr l)
 {
     try{
         UnityEngine.ParticleEmitter self = (UnityEngine.ParticleEmitter)checkSelf(l);
         System.Single a1;
         checkType(l, 2, out a1);
         self.Simulate(a1);
         return(0);
     }
     catch (Exception e) {
         LuaDLL.luaL_error(l, e.ToString());
         return(0);
     }
 }
 static public int Simulate(IntPtr l)
 {
     try {
         UnityEngine.ParticleEmitter self = (UnityEngine.ParticleEmitter)checkSelf(l);
         System.Single a1;
         checkType(l, 2, out a1);
         self.Simulate(a1);
         pushValue(l, true);
         return(1);
     }
     catch (Exception e) {
         return(error(l, e));
     }
 }
 static public int set_particles(IntPtr l)
 {
     try {
         UnityEngine.ParticleEmitter self = (UnityEngine.ParticleEmitter)checkSelf(l);
         UnityEngine.Particle[]      v;
         checkArray(l, 2, out v);
         self.particles = v;
         pushValue(l, true);
         return(1);
     }
     catch (Exception e) {
         return(error(l, e));
     }
 }
// fields

// properties
    static void ParticleEmitter_emit(JSVCall vc)
    {
        if (vc.bGet)
        {
            UnityEngine.ParticleEmitter _this = (UnityEngine.ParticleEmitter)vc.csObj;
            var result = _this.emit;
            JSApi.setBooleanS((int)JSApi.SetType.Rval, (System.Boolean)(result));
        }
        else
        {
            System.Boolean arg0 = (System.Boolean)JSApi.getBooleanS((int)JSApi.GetType.Arg);
            UnityEngine.ParticleEmitter _this = (UnityEngine.ParticleEmitter)vc.csObj;
            _this.emit = arg0;
        }
    }
Example #31
0
		public void ImportData(JSONObject json_data)
		{
			m_effect_type = (PARTICLE_EFFECT_TYPE) (int) json_data["m_effect_type"].Number;
			if(m_effect_type == PARTICLE_EFFECT_TYPE.LEGACY)
				m_legacy_particle_effect = json_data["m_legacy_particle_effect"].Str.PathToParticleEmitter();
			else
				m_shuriken_particle_effect = json_data["m_shuriken_particle_effect"].Str.PathToParticleSystem();
			m_duration.ImportData(json_data["m_duration"].Obj);
			m_follow_mesh = json_data["m_follow_mesh"].Boolean;
			m_position_offset.ImportData(json_data["m_position_offset"].Obj);
			m_rotation_offset.ImportData(json_data["m_rotation_offset"].Obj);
			m_rotate_relative_to_letter = json_data["m_rotate_relative_to_letter"].Boolean;
			
			ImportBaseData(json_data);
		}
 static void ParticleEmitter_minEnergy(JSVCall vc)
 {
     if (vc.bGet)
     {
         UnityEngine.ParticleEmitter _this = (UnityEngine.ParticleEmitter)vc.csObj;
         var result = _this.minEnergy;
         JSApi.setSingle((int)JSApi.SetType.Rval, (System.Single)(result));
     }
     else
     {
         System.Single arg0 = (System.Single)JSApi.getSingle((int)JSApi.GetType.Arg);
         UnityEngine.ParticleEmitter _this = (UnityEngine.ParticleEmitter)vc.csObj;
         _this.minEnergy = arg0;
     }
 }
 static void ParticleEmitter_rndVelocity(JSVCall vc)
 {
     if (vc.bGet)
     {
         UnityEngine.ParticleEmitter _this = (UnityEngine.ParticleEmitter)vc.csObj;
         var result = _this.rndVelocity;
         JSApi.setVector3S((int)JSApi.SetType.Rval, result);
     }
     else
     {
         UnityEngine.Vector3         arg0  = (UnityEngine.Vector3)JSApi.getVector3S((int)JSApi.GetType.Arg);
         UnityEngine.ParticleEmitter _this = (UnityEngine.ParticleEmitter)vc.csObj;
         _this.rndVelocity = arg0;
     }
 }
Example #34
0
    static int get_localVelocity(IntPtr L)
    {
        object o = null;

        try
        {
            o = ToLua.ToObject(L, 1);
            UnityEngine.ParticleEmitter obj = (UnityEngine.ParticleEmitter)o;
            UnityEngine.Vector3         ret = obj.localVelocity;
            ToLua.Push(L, ret);
            return(1);
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e, o, "attempt to index localVelocity on a nil value"));
        }
    }
Example #35
0
    static int get_emitterVelocityScale(IntPtr L)
    {
        object o = null;

        try
        {
            o = ToLua.ToObject(L, 1);
            UnityEngine.ParticleEmitter obj = (UnityEngine.ParticleEmitter)o;
            float ret = obj.emitterVelocityScale;
            LuaDLL.lua_pushnumber(L, ret);
            return(1);
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e, o, "attempt to index emitterVelocityScale on a nil value"));
        }
    }
		public ParticleEffectInstanceManager(TextFxAnimationManager animation_manager, LetterSetup letter_setup_ref, ParticleEffectSetup effect_setup, AnimationProgressionVariables progression_vars, AnimatePerOptions animate_per, ParticleEmitter particle_emitter = null, ParticleSystem particle_system = null)
		{
			m_particle_emitter = particle_emitter;
			m_particle_system = particle_system;
			m_letter_setup_ref = letter_setup_ref;
			m_follow_mesh = effect_setup.m_follow_mesh;
			m_duration = effect_setup.m_duration.GetValue(progression_vars, animate_per);
			m_delay = effect_setup.m_delay.GetValue(progression_vars, animate_per);
			m_position_offset = effect_setup.m_position_offset.GetValue(null, progression_vars, animate_per);
			m_rotation_offset = Quaternion.Euler(effect_setup.m_rotation_offset.GetValue(null, progression_vars, animate_per));
			m_rotate_with_letter = effect_setup.m_rotate_relative_to_letter;
			m_animation_manager = animation_manager;
			m_active = false;

			if(m_particle_emitter != null)
			{
				m_transform = m_particle_emitter.transform;

				m_particle_emitter.emit = true;
				m_particle_emitter.enabled = false;

				// Set the layer of the effect if an override is specified
				if(animation_manager.AnimationInterface.LayerOverride >= 0)
					m_particle_emitter.gameObject.layer = animation_manager.AnimationInterface.LayerOverride;
			}
			else if(m_particle_system != null)
			{
				m_transform = m_particle_system.transform;

				m_particle_system.playOnAwake = false;
				m_particle_system.Play();
	#if !UNITY_3_5 && UNITY_EDITOR
				p_system_timer = 0;
	#endif

				// Set the layer of the effect if an override is specified
				if(animation_manager.AnimationInterface.LayerOverride >= 0)
					m_particle_system.gameObject.layer = animation_manager.AnimationInterface.LayerOverride;
			}
		}
Example #37
0
        public void Setup()
        {
            if (part.partInfo == null) { return; }
            if (obj != null) { return; }

            var shaderName = config.GetValue("ShaderName");
            var textureName = config.GetValue("TextureName");

            obj = GameObject.CreatePrimitive(PrimitiveType.Sphere);
            obj.collider.enabled = false;
            obj.renderer.material.color = new Color(0, 0, 0, 0);
            obj.renderer.material.shader = Shader.Find("Transparent/Diffuse");
            obj.transform.parent = part.transform;
            obj.transform.localRotation = Quaternion.identity;

            animator = (ParticleAnimator)obj.AddComponent<ParticleAnimator>();
            emitter = (ParticleEmitter)obj.AddComponent("MeshParticleEmitter");
            renderer = (ParticleRenderer)obj.AddComponent<ParticleRenderer>();

            var material = new Material(Shader.Find(shaderName));
            material.mainTexture = GameDatabase.Instance.GetTexture(textureName, false);
            material.color = Color.white;

            renderer.materials = new Material[] { material };
            animator.colorAnimation = new Color[5];

            if (Misc.Parse(config.GetValue("Collision"), false))
            {
                obj.AddComponent("WorldParticleCollider");
            }

            AngularVelocity         = Misc.Parse(config.GetValue("AngularVelocity"), 0f);
            CameraVelocityScale     = Misc.Parse(config.GetValue("CameraVelocityScale"), 0f);
            ColorAnimation1         = ConfigNode.ParseColor(config.GetValue("ColorAnimation1"));
            ColorAnimation2         = ConfigNode.ParseColor(config.GetValue("ColorAnimation2"));
            ColorAnimation3         = ConfigNode.ParseColor(config.GetValue("ColorAnimation3"));
            ColorAnimation4         = ConfigNode.ParseColor(config.GetValue("ColorAnimation4"));
            ColorAnimation5         = ConfigNode.ParseColor(config.GetValue("ColorAnimation5"));
            Damping                 = Misc.Parse(config.GetValue("Damping"), 1f);
            Emit                    = Misc.Parse(config.GetValue("Emit"), true);
            EmitterVelocityScale    = Misc.Parse(config.GetValue("EmitterVelocityScale"), 1f);
            Force                   = Misc.Parse(config.GetValue("Force"), Vector3.zero);
            LengthScale             = Misc.Parse(config.GetValue("LengthScale"), 1f);
            LocalRotationAxis       = Misc.Parse(config.GetValue("LocalRotationAxis"), Vector3.zero);
            LocalVelocity           = Misc.Parse(config.GetValue("LocalVelocity"), Vector3.zero);
            MaxEmission             = Misc.Parse(config.GetValue("MaxEmission"), 0f);
            MaxEnergy               = Misc.Parse(config.GetValue("MaxEnergy"), 0f);
            MaxParticleSize         = Misc.Parse(config.GetValue("MaxParticleSize"), 0f);
            MaxSize                 = Misc.Parse(config.GetValue("MaxSize"), 0f);
            MinEmission             = Misc.Parse(config.GetValue("MinEmission"), 0f);
            MinEnergy               = Misc.Parse(config.GetValue("MinEnergy"), 0f);
            MinSize                 = Misc.Parse(config.GetValue("MinSize"), 0f);
            RandomAngularVelocity   = Misc.Parse(config.GetValue("RandomAngularVelocity"), 0f);
            RandomForce             = Misc.Parse(config.GetValue("RandomForce"), Vector3.zero);
            RandomRotation          = Misc.Parse(config.GetValue("RandomRotation"), false);
            RandomVelocity          = Misc.Parse(config.GetValue("RandomVelocity"), Vector3.zero);
            RenderMode              = Misc.Parse(config.GetValue("RenderMode"), ParticleRenderMode.Billboard);
            SizeGrow                = Misc.Parse(config.GetValue("SizeGrow"), 0f);
            UseWorldSpace           = Misc.Parse(config.GetValue("UseWorldSpace"), false);
            VelocityScale           = Misc.Parse(config.GetValue("VelocityScale"), 0f);
            WorldRotationAxis       = Misc.Parse(config.GetValue("WorldRotationAxis"), Vector3.zero);
            WorldVelocity           = Misc.Parse(config.GetValue("WorldVelocity"), Vector3.zero);

            EmitterPosition         = Misc.Parse(config.GetValue("EmitterPosition"), Vector3.zero);
            EmitterScale            = Misc.Parse(config.GetValue("EmitterScale"), Vector3.zero);
        }
        public ParticleEmitter Emitter(ParticleEmitter pe)
        {
            ParticleEmitter fx;

            fx = (ParticleEmitter)UnityEngine.Object.Instantiate(pe);

            fx.transform.parent = groundInterfaceTransform;
            fx.transform.position = groundInterfaceTransform.position;
            fx.transform.rotation = groundInterfaceTransform.rotation;
            fx.gameObject.SetActive(false);

            return fx;
        }
Example #39
0
 public sParticleEmitter(ParticleEmitter p)
 {
 }
            /// <summary>
            /// The main initialisation. Here we create the subcomponents.
            /// </summary>
            void Awake()
            {
                if (!GetComponent<ParticleEmitter>())
                {
                    emitter = (ParticleEmitter)gameObject.AddComponent("MeshParticleEmitter");
                    emitter.useWorldSpace = false;
                    emitter.emit = true;
                }
                else
                {
                    emitter = GetComponent<ParticleEmitter>();
                }

                if (!GetComponent<ParticleAnimator>())
                {
                    animator = gameObject.AddComponent<ParticleAnimator>();
                    animator.doesAnimateColor = true;
                }
                else
                {
                    animator = GetComponent<ParticleAnimator>();
                }

                if (!GetComponent<ParticleRenderer>())
                {
                    renderer = gameObject.AddComponent<ParticleRenderer>();
                    renderer.material = new Material(Shader.Find("Particles/Alpha Blended"));
                }
                else
                {
                    renderer = GetComponent<ParticleRenderer>();
                }

                if (!GetComponent<MeshFilter>())
                {
                    filter = gameObject.AddComponent<MeshFilter>();
                }
                else
                {
                    filter = GetComponent<MeshFilter>();
                }
            }
 /// <summary>
 /// Calls GetComponent for all cached components if the currently cached instance is no longer valid.
 /// </summary>
 public void ResetCacheDestroyed()
 {
     if (!animation)
     {
         animation = GetComponent<Animation>();
     }
     if (!audio)
     {
         audio = GetComponent<AudioSource>();
     }
     if (!camera)
     {
         camera = GetComponent<Camera>();
     }
     if (!collider)
     {
         collider = GetComponent<Collider>();
     }
     if (!collider2D)
     {
         collider2D = GetComponent<Collider2D>();
     }
     if (!constantForce)
     {
         constantForce = GetComponent<ConstantForce>();
     }
     if (!guiText)
     {
         guiText = GetComponent<GUIText>();
     }
     if (!guiTexture)
     {
         guiTexture = GetComponent<GUITexture>();
     }
     if (!hingeJoint)
     {
         hingeJoint = GetComponent<HingeJoint>();
     }
     if (!light)
     {
         light = GetComponent<Light>();
     }
     if (!networkView)
     {
         networkView = GetComponent<NetworkView>();
     }
     if (!particleEmitter)
     {
         particleEmitter = GetComponent<ParticleEmitter>();
     }
     if (!particleSystem)
     {
         particleSystem = GetComponent<ParticleSystem>();
     }
     if (!renderer)
     {
         renderer = GetComponent<Renderer>();
     }
     if (!rigidbody)
     {
         rigidbody = GetComponent<Rigidbody>();
     }
     if (!rigidbody2D)
     {
         rigidbody2D = GetComponent<Rigidbody2D>();
     }
     if (!transform)
     {
         transform = GetComponent<Transform>();
     }
 }
        public SGenericParticleSystem(ParticleEmitter emitter, ParticleRenderer renderer, Particle[] particles)
        {
            if (emitter == null || renderer == null)
                return;

            instanceID = emitter.GetInstanceID();
            goInstanceID = emitter.gameObject.GetInstanceID();
            isLegacy = true;
            isWorldSpace = emitter.useWorldSpace;
            emit = emitter.emit;
            enabled = emitter.enabled;
            position = emitter.transform.position;
            name = emitter.gameObject.name;
            SetParticleRenderer(renderer);

            this.particles = new SGenericParticleArray(particles);
        }
Example #43
0
 private void addComponents()
 {
     pEmitter = (ParticleEmitter)gameObject.AddComponent("MeshParticleEmitter");
     pRenderer = gameObject.AddComponent<ParticleRenderer>();
     pAnimator = gameObject.AddComponent<ParticleAnimator>();
 }
        public ParticleEmitter Spawn(ParticleEmitter prefab, Vector3 pos, Quaternion rot, string colorPropertyName, Color color)
        {
            Transform inst = Spawn(prefab.transform, pos, rot);
            if (inst == null) return null;

            ParticleAnimator animator = inst.GetComponent<ParticleAnimator>();
            if (animator != null) animator.autodestruct = false;

            ParticleEmitter emitter = inst.GetComponent<ParticleEmitter>();

            emitter.GetComponent<Renderer>().material.SetColor(colorPropertyName, color);
            emitter.emit = true;

            StartCoroutine(ListenForEmitDespawn(emitter));

            return emitter;
        }
 public ParticleEmitter Spawn(ParticleEmitter prefab, Vector3 pos, Quaternion rot)
 {
     Transform inst = this.Spawn(prefab.transform, pos, rot);
     if (inst == null) return null;
     ParticleAnimator animator = inst.GetComponent<ParticleAnimator>();
     if (animator != null) animator.autodestruct = false;
     ParticleEmitter emitter = inst.GetComponent<ParticleEmitter>();
     emitter.emit = true;
     StartCoroutine(ListenForEmitDespawn(emitter));
     return emitter;
 }
 /// <summary>
 /// Caches all of the current standard components attached to the object.
 /// </summary>
 public void ResetCache()
 {
     animation = GetComponent<Animation>();
     audio = GetComponent<AudioSource>();
     camera = GetComponent<Camera>();
     collider = GetComponent<Collider>();
     collider2D = GetComponent<Collider2D>();
     constantForce = GetComponent<ConstantForce>();
     guiText = GetComponent<GUIText>();
     guiTexture = GetComponent<GUITexture>();
     hingeJoint = GetComponent<HingeJoint>();
     light = GetComponent<Light>();
     networkView = GetComponent<NetworkView>();
     particleEmitter = GetComponent<ParticleEmitter>();
     particleSystem = GetComponent<ParticleSystem>();
     renderer = GetComponent<Renderer>();
     rigidbody = GetComponent<Rigidbody>();
     rigidbody2D = GetComponent<Rigidbody2D>();
     transform = GetComponent<Transform>();
 }
		private static extern void INTERNAL_CALL_ClearParticles(ParticleEmitter self);
        private void configureParticles()
        {
            GameObject obj = Instantiate(UnityEngine.Resources.Load("Effects/fx_exhaustFlame_blue")) as GameObject;
            obj.transform.parent = transform;
            obj.transform.localEulerAngles = Vector3.zero;
            obj.transform.localPosition = Vector3.zero;

            emitter = obj.particleEmitter;
            emitter.emit = true;
            emitter.minEnergy = 0.5f;
            emitter.maxEnergy = 1.5f;

            emitter.minSize = 0.2f;
            emitter.maxSize = 0.4f;

            emitter.minEmission = PARTICLES_IDLE;
            emitter.maxEmission = PARTICLES_IDLE * 2;

            emitter.rndVelocity = Vector3.one * 2;
            emitter.localVelocity = Vector3.zero;

            emitter.useWorldSpace = false;
            (obj.GetComponent<ParticleAnimator>() as ParticleAnimator).sizeGrow = 2f;
        }
        private IEnumerator ListenForEmitDespawn(ParticleEmitter emitter)
        {
            yield return null;
            yield return new WaitForEndOfFrame();

            float safetimer = 0;
            GameObject emitterGO = emitter.gameObject;
            while (emitter.particleCount > 0 && emitterGO.activeInHierarchy)
            {
                safetimer += Time.deltaTime;
                if (safetimer > MaxParticleDespawnTime)
                {
                    Debug.LogWarning
                    (
                        string.Format
                        (
                            "SpawnPool {0}: " +
                                "Timed out while listening for all particles to die. " +
                                "Waited for {1}sec.",
                            PoolName,
                            MaxParticleDespawnTime
                        )
                    );
                }
                yield return null;
            }
            emitter.emit = false;
            if (emitterGO.activeInHierarchy)
            {
                Despawn(emitter.transform);
            }
        }
 /// <summary>
 /// Caches the current ParticleEmitter attached to the object.
 /// </summary>
 public void ResetParticleEmitterCache()
 {
     particleEmitter = GetComponent<ParticleEmitter>();
 }