我正在尝试将Unity 5.3.1 mono项目移植到Windows应用商店。以下是我无法完全解决的一行代码:
var pia = T.GetTypeInfo().GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.FlattenHierarchy | BindingFlags.GetProperty);
BindingFlags.GetProperty
似乎不存在。根据.Net 4.5文档,此枚举属性应该在那里。如果删除GetProperty
方法,我不知道代码会发生什么。
是否存在Unity3D编译的等效文件?
答案 0 :(得分:1)
您需要让代码区分运行的平台。在编辑器中,Unity将针对Mono框架编译您的代码,而在构建WinStore期间,它将针对.NET 4或其他东西进行编译。 无论你写什么,你的代码都不会为其中一个平台编译。
您需要为这两个平台提供不同的代码。例如:
#if UNITY_METRO
var pia = T.GetTypeInfo().GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.FlattenHierarchy | BindingFlags.GetProperty);
#else
var pia = T.GetType().GetProperties(...);
#endif