private void UpdateAgentPosition() { if (m_BindingEntityLogic.Available) { m_CachedTransform.position = m_BindingEntityLogic.CachedTransform.position; return; } if (m_ResetSoundAgentEventHandler != null) { ResetSoundAgentEventArgs resetSoundAgentEventArgs = ResetSoundAgentEventArgs.Create(); m_ResetSoundAgentEventHandler(this, resetSoundAgentEventArgs); ReferencePool.Release(resetSoundAgentEventArgs); } }
private void Update() { if (!IsPlaying && m_AudioSource.clip != null && m_ResetSoundAgentEventHandler != null) { ResetSoundAgentEventArgs resetSoundAgentEventArgs = ResetSoundAgentEventArgs.Create(); m_ResetSoundAgentEventHandler(this, resetSoundAgentEventArgs); ReferencePool.Release(resetSoundAgentEventArgs); return; } if (m_BindingEntityLogic != null) { UpdateAgentPosition(); } }
/// <summary> /// 设置声音绑定的实体。 /// </summary> /// <param name="bindingEntity">声音绑定的实体。</param> public override void SetBindingEntity(Entity bindingEntity) { m_BindingEntityLogic = bindingEntity.Logic; if (m_BindingEntityLogic != null) { UpdateAgentPosition(); return; } if (m_ResetSoundAgentEventHandler != null) { ResetSoundAgentEventArgs resetSoundAgentEventArgs = ResetSoundAgentEventArgs.Create(); m_ResetSoundAgentEventHandler(this, resetSoundAgentEventArgs); ReferencePool.Release(resetSoundAgentEventArgs); } }
/// <summary> /// 创建重置声音代理事件。 /// </summary> /// <returns>创建的重置声音代理事件。</returns> public static ResetSoundAgentEventArgs Create() { ResetSoundAgentEventArgs resetSoundAgentEventArgs = ReferencePool.Acquire <ResetSoundAgentEventArgs>(); return(resetSoundAgentEventArgs); }
/// <summary> /// 重置声音代理时的回调 /// </summary> private void OnResetSoundAgent(object sender, ResetSoundAgentEventArgs e) { Reset(); }