Ejemplo n.º 1
0
	public bool Touch(SoundOne soundone)
	{
		soundone.audio.clip = null;
		soundone.SetEndHandler(null);

		if((Time.time - m_lastTouchTime) < m_touchGap)
			return false;

		if (m_usedCount >= m_maxInstanceCount)
			return false;

		if (!m_loading && m_clip == null)
			return false;

		if (m_loading)
		{
			m_deferGetSounds.Add(soundone);
		}
		else
		{
			soundone.audio.clip = m_clip;
		}
		soundone.gameObject.name = SoundName;
		soundone.SetEndHandler(OnSoundLifeEnd);
		++m_usedCount;
		Transform trans = soundone.transform;
		trans.localPosition = Vector3.zero;
		trans.localRotation = Quaternion.identity;
		trans.localScale = Vector3.one;
		m_lastTouchTime = Time.time;
		return true;
	}
Ejemplo n.º 2
0
	void OnSoundLifeEnd(SoundOne soundone, bool isDestroy)
	{
		--m_usedCount;
		//Debug.Log("OnSoundLifeEnd ......");
		lastReleaseTime = Time.time;
		soundone.audio.clip = null;
		soundone.SetEndHandler(null);
		if(isDestroy == false)
			SoundCacheMan.Instance.GiveBack(soundone);
	}
Ejemplo n.º 3
0
	public void GiveBack(SoundOne soundone)
	{
		soundone.gameObject.name = "sound";
		soundone.transform.parent = m_unusedSoundOne;
		soundone.gameObject.SetActive(false);
	}