public static Delegate UnityEngine_Camera_CameraCallback(LuaFunction func, LuaTable self, bool flag)
    {
        if (func == null)
        {
            UnityEngine.Camera.CameraCallback fn = delegate(UnityEngine.Camera param0) { };
            return(fn);
        }

        if (!flag)
        {
            UnityEngine_Camera_CameraCallback_Event target = new UnityEngine_Camera_CameraCallback_Event(func);
            UnityEngine.Camera.CameraCallback       d      = target.Call;
            target.method = d.Method;
            return(d);
        }
        else
        {
            UnityEngine_Camera_CameraCallback_Event target = new UnityEngine_Camera_CameraCallback_Event(func, self);
            UnityEngine.Camera.CameraCallback       d      = target.CallWithSelf;
            target.method = d.Method;
            return(d);
        }
    }
    public static Delegate UnityEngine_Camera_CameraCallback(LuaFunction func, LuaTable self, bool flag)
    {
        if (func == null)
        {
            UnityEngine.Camera.CameraCallback fn = delegate(UnityEngine.Camera param0) { };
            return fn;
        }

        if(!flag)
        {
            UnityEngine_Camera_CameraCallback_Event target = new UnityEngine_Camera_CameraCallback_Event(func);
            UnityEngine.Camera.CameraCallback d = target.Call;
            target.method = d.Method;
            return d;
        }
        else
        {
            UnityEngine_Camera_CameraCallback_Event target = new UnityEngine_Camera_CameraCallback_Event(func, self);
            UnityEngine.Camera.CameraCallback d = target.CallWithSelf;
            target.method = d.Method;
            return d;
        }
    }