c/c++语言开发共享将复杂数据类型从纯c插件传递到Unity C#脚本

我目前正在为Objective-C中的Unity编写一个In-App购买插件,使用纯C作为Unity和objective-c代码之间的API。

介绍我面临的问题

基本function已经有效。 也就是说,我已经在我的插件中有一个非常基本的函数调用来启动对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方法向app store发起产品请求。

问题

当StoreKit给我回复所有产品时,这就是我开始变得棘手的地方。 我想将检索到的每个产品的所有相关数据传递回unity C#脚本,以便您可以处理游戏中的数据。 这意味着存储:

– 每种产品的名称

– 每种产品的描述

– 每个产品的价格

一个明显的解决方案是创建一个包含此信息的结构或类,然后为每个产品创建一个实例并将它们全部放入一个数组中。

问题

现在问题是,我如何将这个复杂数据结构数组发送回Unity脚本? Unity的官方文档提到您可以使用此方法调用将消息发送回Unity: UnitySendMessage(“GameObjectName1”,“MethodName1”,“要发送的消息”);

我接到了工作电话,但显而易见的问题是它只允许你发送字符串。

所以:

我如何将复杂数据结构的数组发送回Unity脚本? 这有可能吗?

    跟进我的评论和你的评论:如果你想要一个强大的解决方案,我建议你看看这个答案 。 如果这对性能至关重要,那么您必须通过序列化获得更多“手动”。 那么这种数据传输的性能至关重要吗?

    需要了解更多c/c++开发分享将复杂数据类型从纯c插件传递到Unity C#脚本,也可以关注C/ C++技术分享栏目—计算机技术网(www.ctvol.com)!

      以上就是c/c++开发分享将复杂数据类型从纯c插件传递到Unity C#脚本相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/980010.html

      (0)
      上一篇 2021年12月13日
      下一篇 2021年12月13日

      精彩推荐