gpt4 book ai didi

c# - 将复杂数据类型从纯 c 插件传递到 Unity C# 脚本

转载 作者:搜寻专家 更新时间:2023-10-30 19:48:06 24 4
gpt4 key购买 nike

我目前正在使用纯 C 作为 Unity 和 Objective-C 代码之间的 API 在 Objective-C 中为 Unity 编写应用内购买插件。

我面临的问题介绍

基本功能已经可用。也就是说,我的插件中已经有一个非常基本的函数调用,用于启动对 Apple App Store 的产品请求,可以从 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 返回所有产品的响应时,这对我来说开始变得棘手了。我想将检索到的每个产品的所有相关数据传回统一 C# 脚本,以便您可以处理游戏中的数据。这意味着存储:

-每个产品的名称

-每个产品的描述

-每个产品的价格

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

问题

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

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

所以:

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

最佳答案

跟进我的评论和你的评论:如果你想要一个强大的解决方案,我建议你查看 this answer .如果这是对性能至关重要的事情,那么您将不得不在序列化中获得更多的“手动”。那么这种数据传输对性能有多重要?

关于c# - 将复杂数据类型从纯 c 插件传递到 Unity C# 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12216625/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com