こんちちは、素晴らしいライブラリをありがとうございます。
私は DxLib C# I/F を利用させていただいております。
DxLib の 3Dアクション基本 サンプルプログラム を C# で書き直しております。
DxDLL.cs 内の MV1CollCheck_Sphere 関数には
dx_MV1CollCheck_Sphere_x86
dx_MV1CollCheck_Sphere_x64
と x86 と x64 がありますが 64bit 動作も可能なのでしょうか?
質問の背景は、戻り値の型 MV1_COLL_RESULT_POLY_DIM の Dim が uint 型であり
C++ のポインタを代入しているとすると 32bit 動作しかできなく思えます。
あと DxLibDotNet 3.24f に不具合がありましたのでご連絡します。
...dxlib.xsrv.jp/program/dxprogram_3DAction.html
こちらのサンプルプログラムを C# に書き直して実行するとステージモデルが表示できません。
次のような感じでコードを書くと
MV1_COLL_RESULT_POLY_DIM hitDim:
MV1_COLL_RESULT_POLY poly;
hitDim = MV1CollCheck_Sphere(modelHandle, -1, pos, Const.PLAYER_ENUM_DEFAULT_SIZE + VSize(moveVector));
for (int i = 0; i < hitDim.HitNum; i++) {
poly = MV1CollCheck_GetResultPoly(hitDim, i);
として取得した最初の poly.Normal が (-2250, 0, 1) となっていました。
Position2.z が Normal.x にズレており他のメンバーの多くも 4byte ズレていました。
(私は DxLibDotNet.dll を使用していますが)DxDLL.cs を調べると
1010行目の public struct MV1_COLL_RESULT_POLY のメンバーに
[FieldOffset(20)] public int MeshIndex;
が漏れていました。そのため以降のメンバーが 4byte ズレていました。
この点を修正した DxDLL.cs を使用してビルドすると無事ステージモデルを表示できました。
次回バージョンアップ時に修正をお願い致します。