Передача объектов данных в Unity Scaleform AS3
То, что я прочитал, говорит об использовании отражения между C# и Scaleform. Это работает по большей части для запуска взаимодействий и функциональности между MVC, но мне просто интересно, каков будет лучший способ передачи объекта данных из игры в пользовательский интерфейс.
Цель состоит в том, чтобы пользовательский интерфейс обрабатывал как можно больше функций дисплея. Этот вопрос находится в контексте игры Unity, где ресурсы ограничены, а системы должны быть настолько разделены, насколько это возможно.
1 ответ
Вы не можете передать необработанный кусок данных в Scaleform и получить его как "голый" объект (например, {id:0, name:"foo", x:100, y:100}
и так далее). Однако вы МОЖЕТЕ создать соответствующие типы контейнеров данных в C# и AS3 и передавать данные таким образом. Это достигается с помощью value.ConvertFromAsObject
метод и Value.ConvertToAsObject
статический метод.
В API Scaleform 4.2 эту информацию можно найти в Руководстве по интеграции Unity Scaleform, раздел 8.1.6, "Передача объектов между C# и AS3".
Кроме того, вы можете взглянуть на реализации этих функций в SFValue.cs и использовать их в качестве руководства для разработки собственных методов передачи данных с использованием API DirectAccess.