예제 #1
0
        /// <summary>
        /// 播放径向模糊效果
        /// </summary>
        /// <returns>The radial blur.</returns>
        /// <param name="toBlurFactor">To blur factor.</param>
        /// <param name="duration">Duration.</param>
        /// <param name="callback">Callback.</param>
        /// <param name="cam">Cam.</param>
        public static RadialBlur PlayRadialBlur(float toBlurFactor, float duration, LuaFunction callback = null, Camera cam = null)
        {
            if (cam == null)
            {
                cam = Camera.main;
            }

            RadialBlur radialBlur = (RadialBlur)AddOrGetComponent(cam.gameObject, typeof(RadialBlur));

            if (radialBlur.shader == null)
            {
                radialBlur.shader = (Shader)ResManager.LoadAsset("Shaders/PostEffect/RadialBlur.shader", Stage.currentSceneName);
            }

            Action action = null;

            if (callback != null)
            {
                action = () => {
                    callback.BeginPCall();
                    callback.Call();
                    callback.EndPCall();
                }
            }
            ;
            radialBlur.Play(toBlurFactor, duration, action);
            return(radialBlur);
        }
    static int Play(IntPtr L)
    {
        try
        {
            int count = LuaDLL.lua_gettop(L);

            if (count == 3)
            {
                ShibaInu.RadialBlur obj = (ShibaInu.RadialBlur)ToLua.CheckObject <ShibaInu.RadialBlur>(L, 1);
                float arg0 = (float)LuaDLL.luaL_checknumber(L, 2);
                float arg1 = (float)LuaDLL.luaL_checknumber(L, 3);
                obj.Play(arg0, arg1);
                return(0);
            }
            else if (count == 4)
            {
                ShibaInu.RadialBlur obj = (ShibaInu.RadialBlur)ToLua.CheckObject <ShibaInu.RadialBlur>(L, 1);
                float         arg0      = (float)LuaDLL.luaL_checknumber(L, 2);
                float         arg1      = (float)LuaDLL.luaL_checknumber(L, 3);
                System.Action arg2      = (System.Action)ToLua.CheckDelegate <System.Action>(L, 4);
                obj.Play(arg0, arg1, arg2);
                return(0);
            }
            else
            {
                return(LuaDLL.luaL_throw(L, "invalid arguments to method: ShibaInu.RadialBlur.Play"));
            }
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e));
        }
    }