我正在制作一个 Unity 项目并尝试将在 iPhone 上float* array
收到的内容发送到Unity 项目。BLE (BlueTooth)
C# code
那些从 C# 发起到 C++ 端以通过传递数组来接收数据的函数调用是很常见的。但是在这里,当接收到数据时,这个数据传输是从 Objective 端到 C# 的。
我使用插件来连接 C#。
我Objective C
身边有
BLEObject.h, BLEObject.m, UnityBridge.h and UnityBridge.mm
. UnityBridge 是与 C# 接口的 C++ 代码。
UnityBridge.h 有
#ifdef __cplusplus
extern "C" {
#endif
void CallMethod(float* array);
#ifdef __cplusplus
}
#endif
UnityBridge.mm 有
#import "UnityBridge.h"
void CallMethod(float* objectName)
{
//some implementation here
}
BLEObject.h 有
+(void) sendMessage:(NSData*)floatArray;
BLEObject.m 有
+(void) sendMessage:(NSData*)floatArray
{
//I need to convert here NSData* to float array, how?
CallMethod(floatArray);
}
BLE, I call [BLEObject sendMessage:floatArray]
当我从Objective C 端接收数据时。
然后在 C# 方面,
[DllImport ("__Internal")]
public static extern void CallMethod (float* array);
然后我将 CallMethod 实现为
public static void CallMethod (float* array){
//reading array here
}
实际上这段代码不起作用,但这是我喜欢实现的流程。我该如何实施?