static int set_s_OnSoundVolumeChange(IntPtr L)
    {
        try
        {
            AudioCallBack arg0      = null;
            LuaTypes      funcType2 = LuaDLL.lua_type(L, 2);

            if (funcType2 != LuaTypes.LUA_TFUNCTION)
            {
                arg0 = (AudioCallBack)ToLua.CheckObject(L, 2, typeof(AudioCallBack));
            }
            else
            {
                LuaFunction func = ToLua.ToLuaFunction(L, 2);
                arg0 = DelegateFactory.CreateDelegate(typeof(AudioCallBack), func) as AudioCallBack;
            }

            AudioManager.s_OnSoundVolumeChange = arg0;
            return(0);
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e));
        }
    }
예제 #2
0
    private IEnumerator DelayedCallback(float time, AudioCallBack callback)
    {
        yield return(new WaitForSeconds(time));

        GameParam.isTalkEnd = true;
        if (callback != null)
        {
            callback();
        }
    }
예제 #3
0
    private void Play(string str, AudioCallBack callback)
    {
        AudioClip clip = (AudioClip)Resources.Load(str, typeof(AudioClip)); //调用Resources方法加载AudioClip资源

        if (clip == null)
        {
            Debug.Log("path is no exist");
            return;
        }
        source.clip = clip;
        source.Play();

        currentCoro = StartCoroutine(DelayedCallback(clip.length, callback));
    }
예제 #4
0
    public static Delegate AudioCallBack(LuaFunction func, LuaTable self, bool flag)
    {
        if (func == null)
        {
            AudioCallBack fn = delegate(SoundType param0) { };
            return(fn);
        }

        if (!flag)
        {
            AudioCallBack_Event target = new AudioCallBack_Event(func);
            AudioCallBack       d      = target.Call;
            target.method = d.Method;
            return(d);
        }
        else
        {
            AudioCallBack_Event target = new AudioCallBack_Event(func, self);
            AudioCallBack       d      = target.CallWithSelf;
            target.method = d.Method;
            return(d);
        }
    }
예제 #5
0
    private IEnumerator DelayedCallback(float time, AudioCallBack callback)
    {
        yield return(new WaitForSeconds(time));

        callback();
    }
예제 #6
0
 public void PlayClipData(AudioCallBack callback)
 {
     _audioSource.PlayOneShot(_break);
     StartCoroutine(DelayedCallback(TableNum.BreakDelayTime, callback));
 }
예제 #7
0
 public void PlayClipData(AudioCallBack callback)
 {
     _audioSource.PlayOneShot(_anniu);
     StartCoroutine(DelayedCallback(1, callback));
 }