如何将数组从c ++库传递给c#

时间:2014-01-30 18:15:59

标签: c# c++ arrays plugins unity3d

我正在为Unity3d的this c ++物理库编写一个插件。该库是Box2D的超集,添加了粒子模拟。 在c ++库中,有一个函数返回所有粒子的2d矢量对象数组。 我想知道如何将它传回Unity,以便我可以画出它们?我不能在库和Unity之间传递对象。我可以通过一个2d花车阵列吗?我听说我应该在c#中用Unity实例化一个正确大小的数组,然后将它传递给c ++函数,其中所有数据都将被填入,然后将其传递回Unity(这有助于避免c ++中的内存问题)你会怎么用c ++写这个? 或者,我可以使用out参数来执行此操作吗?那怎么写呢?

1 个答案:

答案 0 :(得分:1)

您可以将C#代码中的方法声明为返回IntPtr,然后将其转换为您需要的数组(C ++代码中对象的托管版本数组)。