私はUnityプロジェクトを作成しており、UnityプロジェクトでC# code
にBLE (BlueTooth)
で受け取ったfloat* array
をiPhoneに送ろうとしています。Objective CからC#へのfloat *の送信
これらの関数呼び出しは、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);
そして私は実際にこのコードは動作しないが、これは私が実現したいフローで
public static void CallMethod (float* array){
//reading array here
}
としてCallMethodを実装します。 どうすれば実装できますか?
私はコードを実装しています。完了したら、私は詳細に議論することができます。この投稿を閉じることを試みている人は、閉じないでください。 – batuman