将复杂数据类型从纯c插件传递到Unity C#脚本
我目前正在使用纯C作为Unity和
objective-c代码之间的API,在Objective-C中为Unity编写应用内购买插件.
介绍我面临的问题 基本功能已经有效.也就是说,我已经在我的插件中有一个非常基本的函数调用来启动对Apple App Store的产品请求,可以从Unity调用.在Unity脚本中,您只需将此方法称为: [DllImport ("__Internal")] private static extern void RequestProducts(string[] productIdentifiers,int arrayCount); public static void RequestProductData( string[] productIdentifiers ) { RequestProducts(productIdentifiers,productIdentifiers.Length); } 这会调用C函数,如下所示: void RequestProducts(char* productIdentifiers[],int arrayCount) { // Call the In-App purchase manager to initialize the product request [[InAppPurchaseManager sharedInAppPurchaseManager] RequestProductData:productIdentifierCollection]; } 现在我省略了C函数的一部分,它接受了productIdentifiers数组并将其转换为NSArray,只是为了保持简单并解释我试图解决的问题. 现在InAppPurchaseManager类是一个单例类. RequestProductData方法向应用商店发起产品请求. 问题 当StoreKit给我回复所有产品的回复时,这就是我开始变得棘手的地方.我想将检索到的每个产品的所有相关数据传递回unity C#脚本,以便您可以处理游戏中的数据.这意味着存储: – 每个产品的名称 – 每种产品的描述 – 每个产品的价格 一个显而易见的解决方案是创建一个包含此信息的结构或类,然后为每个产品创建一个实例并将它们全部放入一个数组中. 问题 现在问题是,我如何将这个复杂数据结构数组发送回Unity脚本? Unity的官方文档提到您可以使用此方法调用将消息发送回Unity: 我接到了工作电话,但显而易见的问题是它只允许你发送字符串. 所以: 我如何将复杂数据结构的数组发送回Unity脚本?这甚至可能吗? 解决方法
跟进我的评论和你的评论:如果你想要一个强大的解决方案,我建议你查看
this answer.如果这是性能关键的,那么你将需要更多的“手动”序列化.那么这种数据传输的性能至关重要吗?
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |