Пример #1
0
	bool IsPlaying(AsEffectInfo data)
	{
		if(m_bEnalbe == false) return false;
		bool bIsPlaying = false;
		for (int i = 0; i < data.m_ParticleSystem.Length; ++i)
		{
			if(data.m_ParticleSystem[i])
			{
				if(data.m_ParticleSystem[i].isPlaying)
					bIsPlaying = true;
			}
		}
		
		for (int i = 0; i < data.m_Animation.Length; ++i)
		{
			if(data.m_Animation[i] != null) 
			{
				if(data.m_Animation[i].isPlaying)
					bIsPlaying  = true; 
			}
		}	
			
		for (int i = 0; i < data.m_Emitter.Length; ++i)
		{
			if(data.m_Emitter[i] && data.m_Emitter[i].particleCount != 0  )
				 bIsPlaying = true;
		}
		
		if(data.m_AsMeshEffect != null && data.m_AsMeshEffect.m_Play)
			 bIsPlaying = true;
		return bIsPlaying;
	}
Пример #2
0
	void PlayLooping(AsEffectInfo data)
	{
		if(m_bEnalbe == false) return;
		for (int i = 0; i < data.m_ParticleSystem.Length; ++i)
		{
			if(data.m_ParticleSystem[i])
			{
				if(!data.m_ParticleSystem[i].isPlaying)
					data.m_ParticleSystem[i].Play();				
			}
		}
				
		
		for (int i = 0; i < data.m_Emitter.Length; ++i)
		{
			if(data.m_Emitter[i] && data.m_Emitter[i].particleCount == 0  )
				data.m_Emitter[i].Emit();
		}
		
		if(data.m_AsMeshEffect != null && data.m_AsMeshEffect.m_Play)
			 data.m_AsMeshEffect.m_Play = true;
		
	}
Пример #3
0
    void Play(AsEffectInfo data)
    {
		if(m_bEnalbe == false) return;
		data.m_effectInstance.SetActiveRecursively(true);		
        for (int i = 0; i < data.m_ParticleSystem.Length; ++i)
		{
           data.m_ParticleSystem[i].Play();		
		   data.m_ParticleSystem[i].playbackSpeed = m_ParentObject.PlaybackSpeed ;
		}
		
		for (int i = 0; i < data.m_Animation.Length; ++i)
		{
			if(data.m_Animation[i] == null) 
			{
				Debug.LogError("Effect Data Animation Not found(NULL)");
				continue;
			}		
			Animation ani = data.m_Animation[i];
			if(null != data.m_Animation[i].clip)
			{
				AnimationState ani_state = ani[data.m_Animation[i].clip.name];		
				if(null != ani_state)
					ani_state.speed = m_ParentObject.PlaybackSpeed;
			}
			if(!data.m_Animation[i].isPlaying)
				data.m_Animation[i].Play();	
		}
			
		for (int i = 0; i < data.m_Emitter.Length; ++i)
		{
			data.m_Emitter[i].Emit();					
		}
		
		if(data.m_AsMeshEffect != null )
			 data.m_AsMeshEffect.m_Play = true;
		
		if(data.m_AsTrailEffect != null)
			data.m_AsTrailEffect.Play( m_transform, m_ParentObject.PlaybackSpeed );
		
		data.isPlaying = true;

		
    }
Пример #4
0
	void Stop(AsEffectInfo data)
    {
		if(m_bEnalbe == false) return;
        for (int i = 0; i < data.m_ParticleSystem.Length; ++i)
		{
            data.m_ParticleSystem[i].Stop();			
		}
		
		for (int i = 0; i < data.m_Animation.Length; ++i)
		{
			if(data.m_Animation[i] != null)
			{
				data.m_Animation[i].Stop();  
            	data.m_Animation[i].Rewind();
			}
			else
			{
				Debug.LogError("Effect Data Animation Not found(NULL)");
			}
		}
		
		for (int i = 0; i < data.m_Emitter.Length; ++i)
		{
            data.m_Emitter[i].ClearParticles();
            data.m_Emitter[i].emit = false;			
		}
	
		if(data.m_AsMeshEffect != null && data.m_AsMeshEffect.m_Play)
			 data.m_AsMeshEffect.m_Play = false;
		
		if(data.m_AsTrailEffect != null)
			data.m_AsTrailEffect.Stop( );
		
		
		
		data.m_effectInstance.SetActiveRecursively(false);		
		data.isPlaying = false;
		data.isEnable = false;

		
    }
Пример #5
0
	void SetAttach(AsEffectInfo data)
	{
		Transform attach = null;
		if(data.m_dummyType != Dummy_Type.DummyNone)
		{			
			if(m_transform != null)
	            attach = ResourceLoad.SearchHierarchyTransform(m_transform, data.m_dummyType.ToString() );
			
			if(attach != null)
			{						
				data.m_effectInstance.transform.parent =  attach;
				data.m_effectInstance.transform.localPosition = data.m_effectObject.gameObject.transform.position + m_ParentObject.EntityObject.transform.position;
				data.m_effectInstance.transform.localRotation = data.m_effectInstance.transform.rotation;		
				Vector3 vecScale = Vector3.one;
				vecScale.x = data.m_effectInstance.transform.localScale.x * m_StartSize;
				vecScale.y = data.m_effectInstance.transform.localScale.y * m_StartSize;
				vecScale.z = data.m_effectInstance.transform.localScale.z * m_StartSize;
				data.m_effectInstance.transform.localScale = vecScale;
			}
			else
	        {
	           SetParent(data.m_effectInstance);
	        }
			
		
		}
		else
		{
			SetParent(data.m_effectInstance);
		}
	
					
		if( !data.m_effectInstance )
		{
			Debug.Log("AsEffectData GameObject Null!!! "+ data.m_effectObject.name);		
		}
		
		if(data.indirectPos) SetIndirectPos(data.m_effectInstance); 
		if(data.randomAngleY) SetRandomAngleY(data.m_effectInstance);
		if(data.randomPos) SetRandomPos(data.m_effectInstance);
		
		LoadComponents(data,data.m_effectInstance);
		m_removeList.Add( data.m_effectInstance );
		data.isInstantiate = true;	
		
		SetStartSize(data);
		/////////////////////////////////////////////////////////////////////
		
		AsLaser _Laser = data.m_effectInstance.GetComponentInChildren<AsLaser>();
		if(_Laser) 
		{			
			Transform targetAttach = null;
			targetAttach = ResourceLoad.SearchHierarchyTransform (m_targetTran, "DummyCharacterCenter");
			if(targetAttach != null)	_Laser.m_target = targetAttach;
			else 	_Laser.m_target = m_targetTran;
			if(attach != null)			_Laser.m_start  = attach;
			else  	_Laser.m_start  = m_transform;
		}
		/////////////////////////////////////////////////////////////////////
	}	
Пример #6
0
	void SetStartSize(AsEffectInfo data)
	{
		if(m_StartSize > 0.0f)
		{			
			for (int i = 0; i < data.m_ParticleSystem.Length; ++i)
			{
				if(null != data.m_ParticleSystem[i]  )
					data.m_ParticleSystem[i].startSize = data.m_ParticleSystem[i].startSize  * m_StartSize;
			}	
		
			if(null != data.m_AsMeshEffect  )
			{
				 data.m_AsMeshEffect.StartSize =  m_StartSize;
			}
			
		}

	}
Пример #7
0
	public void LoadComponents(AsEffectInfo data, GameObject go)
	{      
		data.m_Emitter = go.GetComponentsInChildren<ParticleEmitter>();		
		data.m_ParticleSystem = go.GetComponentsInChildren<ParticleSystem>();			
		data.m_Animation = go.GetComponentsInChildren<Animation>(); 
		data.m_AsMeshEffect = go.GetComponentInChildren<AsMeshEffect>(); 
		data.m_AsTrailEffect = go.GetComponentInChildren<AsTrailEffect>(); 	
		
	}