Example #1
0
    // Use this for initialization
    private void Start()
    {
        m_fSoundRadius = GetComponent <FMODUnity.StudioEventEmitter>().OverrideMaxDistance;       //Use the FMOD events distance

        m_fmSoundEventInstance = FMODUnity.RuntimeManager.CreateInstance(m_sSoundToPlay);         //Create a sound instance that we can control
        m_fmSoundEventInstance.set3DAttributes(FMODUnity.RuntimeUtils.To3DAttributes(transform)); //Make the sound here
        m_fmSoundEventInstance.start();                                                           //Start the sound
        m_fmSoundEventInstance.release();

        Collider[] cTargetsInViewRadius = Physics.OverlapSphere(transform.position, m_fSoundRadius, m_GuardAlertMask);//Get all guards in radius

        foreach (Collider cCurrentTarget in cTargetsInViewRadius)
        {
            CS_GuardHearing cGuardRef = cCurrentTarget.GetComponent <CS_GuardHearing>();
            if (cGuardRef != null)
            {
                if (a_bRadio)
                {
                    cGuardRef.AlertHearRadio(transform);
                }
                else
                {
                    cGuardRef.AlertHearOtherSound(transform);
                }
            }
        }
    }
    public override bool CheckPreCondition(GameObject agent)
    {
        CS_GuardHearing cHearingRef = GetComponent <CS_GuardHearing>();

        if (cHearingRef == null || !cHearingRef.GetCanHearRadio())
        {
            return(false);
        }

        m_goTarget = cHearingRef.GetSoundLocation().gameObject;

        if (m_goTarget != null)
        {
            return(true);
        }

        return(false);
    }