示例#1
0
    private static int StopSkillScreenEffect(IntPtr L)
    {
        // 如果处于CG中,当前相机会enable false,此时忽略这些效果
        Camera cam = Main.Main3DCamera;

        if (cam == null || !cam.enabled)
        {
            return(0);
        }
        int       count = LuaDLL.lua_gettop(L);
        const int nRet  = 0;

        if (LuaScriptMgr.CheckTypes(L, 1, typeof(double)))
        {
            int effect_type = (int)LuaScriptMgr.GetNumber(L, 1);

            if (effect_type == 1)  // 打断相机振动
            {
                string       key = (string)LuaScriptMgr.GetString(L, 2);
                CameraShaker cs  = cam.gameObject.GetComponent <CameraShaker>();
                if (cs != null && key != string.Empty)
                {
                    cs.RemoveShakeNodeByKey(key);
                }
                else
                {
                    HobaDebuger.LogWarning("error in StopSkillScreenEffect value check !");
                }
            }
            else if (effect_type == 2)  // 打断相机距离变换
            {
                CCamCtrlMan.Instance.StopCameraStretching();
            }
            else if (effect_type == 3)  // 打断RadialBlur
            {
                var obj_go = LuaScriptMgr.GetUnityObject <GameObject>(L, 2);
                var blur   = obj_go.GetComponentInChildren <RadialBlurBoot>();
                if (blur != null)
                {
                    blur.StopEffect();
                }
            }
        }
        return(CheckReturnNum(L, count, nRet));
    }