Więc mam C API z poniższej strukturyJak używać C struct z tablicy 2D w C# Jedności
typedef struct mat4f_ { float m[4][4]; } mat4f;
Robi przekazany jako parametr do jednego z moich funkcji API:
void myFunction(const mat4f matrix);
ja eksportu tej funkcji C# w Jedności użyciu dll:
[DllImport ("mylib")]
private static extern void myFunction(mat4f matrix);
moje pytanie, co mam mak e odpowiednia struktura C# jest?
Teraz mam następujące:
[StructLayout(LayoutKind.Sequential)]
public struct mat4f
{
public float[,] m;
}
i używać spróbuj użyć funkcji w następujący sposób:
//Just make an identity matrix
mat4f matrix;
matrix.m = new float[4, 4] { { 1, 0, 0, 0 }, { 0, 1, 0, 0 }, { 0, 0, 1, 0 }, { 0, 0, 0, 1 } };
myFunction(matrix); //Call dll function
Jest to poprawne rzeczą do zrobienia? Czy jest lepszy sposób to zrobić?