public static unsafe void ControlCamera(CameraControlDuration inHowLong, CameraControlCallback inControlFunc, void *inRefcon)
        {
            IL.DeclareLocals(false);
            IntPtr inControlFuncPtr = inControlFunc != null?Marshal.GetFunctionPointerForDelegate(inControlFunc) : default;

            ControlCameraPrivate(inHowLong, inControlFuncPtr, inRefcon);
            GC.KeepAlive(inControlFunc);
        }
示例#2
0
        public CameraControl(CameraControlType type = CameraControlType.ArcBall)
        {
            oldMouseState = Mouse.GetState();
            oldKeyboardState = Keyboard.GetState();

            switch (type)
            {
                case CameraControlType.ArcBall:
                    UpdateFunc = (camera, mouse, keyboard) =>
                    {
                        ArcBall(camera);
                    };
                    break;

                case CameraControlType.FPS:
                    UpdateFunc = (camera, mouse, keyboard) =>
                    {
                        FPS(camera);
                    };
                    break;
            }
        }
示例#3
0
 static unsafe Camera()
 {
     _cameraControlCallback = OnCameraCallback;
示例#4
0
 public CameraControl(CameraControlCallback callback)
 {
     UpdateFunc = callback;
 }