Проект, над которым я работаю, имеет некоторые специфические требования к дизайну, и я пытаюсь найти решение, которое удовлетворяет им (и, вероятно, понимая, что «это невозможно»).
- 3Dмодели будут храниться в одном или нескольких наборах ресурсов, на которые будут ссылаться, так что будущие обновления могут быть переданы нескольким приложениям с минимальными усилиями (40 программ не нужно перекомпилировать).
- Пакеты активов считаются энергозависимымидо некоторой степени (они могут изменяться извне, чтобы можно было обновлять объекты 3D и текстур, обновления должны никогда не требовать перекомпиляции exe-файла Unity).
- Код не может быть включен вкомплекты ресурсов (по нескольким причинам; в первую очередь Unity не может запустить код, отсутствующий в его dll, поэтому ресурсы сценариев должны присутствовать в базовом приложении; также существует проблема накладных расходов: эти модели очень детализированы, сотни частей (буквально до отдельных винтов), каждый из которых может быть индивидуально неразрешимым).
Мне нужно найти способ, как редактора, так и среды выполнения, чтобы иметь возможность однозначно ссылаться на отдельные части 3D-ресурсов, чтобы разработчики приложений могли указать, какие биты должны иметь функциональные возможности и какого типа, в то время как во время выполненияПриложение должно быть в состоянии найти эти биты, чтобы применить функциональность.
Рассмотренные параметры и их недостатки:
- Преобразование имен объектов иерархии.Сломается, если объект переименовывается, перемещается (переопределяется) или удаляется (возможно, если маловероятно, создает невидимые зависимости).Нарушает требование № 2.
- Использование GUID.Требуется, чтобы у каждого объекта в иерархии был прикрепленный скрипт, хранящий информацию.Нарушает требование № 3.
- Использование комплектов ресурсов как включенных (скомпилированных в проект) ресурсов.Нарушает требование № 1.
- Адресуемые пакеты Unity.В настоящее время не готов к использованию, не будет готов вовремя к сроку поставки этого проекта.