Интерактивный 3D-просмотрщик PDF-документов
Данный проект представляет собой надстройку и систему управления для плагина рендеринга PDF (Paroxe PDFRenderer), адаптированную для работы в среде Unity.
Система позволяет отображать PDF-документы не как плоские спрайты, а как объекты, встроенные в сложную иерархию сцены. Ключевой особенностью является реализация селективного подхода к отображению контента.
Детали реализации:
Управление состоянием отображения: Разработан компонент ToggleScript, выступающий в роли контроллера видимости PDF-объектов. Сцена построена таким образом, что PDF-файлы вложены в многоуровневые структуры трансформов (родительские объекты глубиной в три уровня). Скрипт управляет механизмом взаимоисключающего отображения (аналог радиокнопок): при активации одного документа происходит обращение к главному контроллеру сцены (Main) и деактивация ранее активного элемента через прямое обращение к свойству toggle.isOn.
Работа с трансформациями: В коде учтена работа с PDF-матрицами (PDFMatrix), что говорит о необходимости точного позиционирования и масштабирования страниц в 3D-пространстве. Реализована поддержка матричных преобразований (методы Scale и Translate) с возможностью предварительного умножения матриц, что критично для корректного геометрического размещения страниц документа с учетом иерархии объектов.
Поддержка PDF-функционала: Интеграция включает модули поиска по тексту (PDFSearchResult), систему миниатюр (PDFThumbnailItem) и элементы управления скроллом боковой панели (PDFViewerLeftPanelScrollbar), что обеспечивает полноценную навигацию по документу без выхода из 3D-режима.
Технический стек: Unity Engine (C#), работа с UI (UnityEngine.UI), глубокое взаимодействие с API рендеринга PDF-плагинов, матричная алгебра в контексте графического конвейера.