如何将 3dMax 网格从 maxscript 函数传递给 C# 函数?

How do I pass a 3dMax mesh from a maxscript funtion a C# function?

我有一个在 maxscript 脚本中创建的网格。
我想将它传递给我的 C# 代码,显然我无法获得正确的函数签名...
它使用 void 函数(代码被调用,我得到一个断点,字符串被传回 3dMax)

我加载我的 DLL,创建我的对象,并尝试将网格传递给函数,但我收到以下错误:

MAXScript MacroScript Error Exception: -- Runtime error: No method found which matched argument list <<

我加载 DLL 的 maxscript 代码:

newMesh = mesh vertices:verts faces:faces   

dotnet.loadassembly ( dllDir )

ThisTestObject  = dotnetobject "_3dMaxExporter.Test" "test"

myText = ThisTestObject.TestFunc newMesh 

C#代码:

    public string TestFunc(Autodesk.Max.IMesh test)
    {
       return ("You can call me " + Name + "!");
    }

知道我的签名需要什么类型吗?

UIntPtrIntPtrUIntPtr 如果你想通过句柄传递它(getHandleByAnim MAXScript 端,GetAnimByHandle(UIntPtr handle) .NET 端),IntPtr 如果你想通过它的地址传递它(refs.getAddr MAXScript 端, MarshalNativeToManaged Wrappers.CustomMarshalerMesh .NET 端的方法)。