我读到的内容是在 C# 和 Scaleform 之间使用反射。这在很大程度上适用于触发 MVC 之间的交互和功能,但我只是想知道将数据对象从游戏传输到 UI 的最佳方法是什么。
目标是让 UI 处理尽可能多的显示功能。这个问题是在资源有限且系统应尽可能划分的 Unity 游戏的背景下进行的。
我读到的内容是在 C# 和 Scaleform 之间使用反射。这在很大程度上适用于触发 MVC 之间的交互和功能,但我只是想知道将数据对象从游戏传输到 UI 的最佳方法是什么。
目标是让 UI 处理尽可能多的显示功能。这个问题是在资源有限且系统应尽可能划分的 Unity 游戏的背景下进行的。
您不能将原始数据块传递给 Scaleform 并将其作为“裸”对象(例如{id:0, name:"foo", x:100, y:100}
,等等)接收。但是,您可以在 C# 和 AS3 中创建相应的数据容器类型并以这种方式传输数据。这是使用value.ConvertFromAsObject
方法和Value.ConvertToAsObject
静态方法完成的。
在 Scaleform 4.2 API 中,此信息可以位于Scaleform Unity 集成指南的第 8.1.6 节“在 C# 和 AS3 之间传递对象”中。
或者,您可以查看 SFValue.cs 中这些函数的实现,并将其用作使用 DirectAccess API 开发您自己的数据传输技术的指南。