Внутренняя разработка VORIVOX. Пакет candidate: оставшиеся проверки обозначены в разделе совместимости.
Пример: рельсовый 3D-шутер
Камера движется по заранее заданному маршруту, а попадания преобразуются в Raycast. Это позволяет получить красивую 3D-игру без сложности полноценного FPS.
Основные компоненты
- Cinemachine Dolly Track или Timeline;
- главная камера;
- слой поражаемых объектов;
- анимационный контроллер персонажей;
- миссионный сценарий;
- VORIVOX SDK.
Raycast по попаданию
private void OnHit(VorivoxHit hit)
{
Ray ray = gameplayCamera.ViewportPointToRay(
new Vector3(hit.NormalizedX, hit.NormalizedY, 0f));
if (!Physics.Raycast(ray, out RaycastHit rayHit, 250f, targetMask))
{
RegisterMiss();
return;
}
if (rayHit.collider.TryGetComponent(out ShootableTarget target))
{
int points = target.ApplyShot(rayHit.point);
AddScore(points);
SpawnImpact(rayHit);
}
}
Сценарий миссии
Briefing → Warehouse yard → Corridor → Hostage room → Result
20 sec 35 sec 25 sec
Оптимизация
Сначала измерьте производительность в Unity Profiler на эталонном компьютере VORIVOX. Для неподвижной геометрии и постоянных источников света можно заранее рассчитать карты освещения с помощью Baked Global Illumination. Это уменьшает нагрузку на процессор и видеокарту во время игры.
- используйте
LOD Groupдля удалённых объектов; - ограничивайте количество прозрачных частиц и полноэкранных эффектов;
- загружайте следующий участок маршрута заранее, не прерывая игровой процесс;
- переиспользуйте эффекты попадания через пул объектов вместо постоянного создания и удаления
GameObject; - проверяйте частоту кадров, время кадра CPU/GPU и использование памяти в релизной Linux-сборке;
- не загружайте игровые ресурсы или исполняемый код из интернета во время сеанса.
Учебные примеры — скрипты, требующие сцены и назначенных ссылок Unity. Для production обязательны guard паузы/countdown, обработка потери соединения, защита по shot_id и отписка обработчиков. Старые Samples могут требовать адаптации: полнота игровой механики не заявляется.
Playground — браузерная демонстрация общего контракта. Это не Unity Player и не проверка C#-пакета.