【问题标题】:Problems when trying to use ksp/unity3d binaries?尝试使用 ksp/unity3d 二进制文件时出现问题?
【发布时间】:2013-03-23 02:35:21
【问题描述】:

我正在尝试使用 kerbal 空间程序 (ksp) 二进制文件来读取其中一个 ksp 零件模型,我在引用下添加了 ksp 二进制文件和 UnityEngine.dll 然后我正在执行以下操作:

Planet p = new Planet();

运行它会给我以下安全异常:

ECall 方法必须打包到系统模块中。

我可以绕过或修复这个问题吗?

编辑:

我发现它不是来自 ksp dll,而是来自 untiy 的,他们使用:

    [WrapperlessIcall ]
    [MethodImpl (MethodImplOptions.InternalCall)]
    public extern void StopAllCoroutines ();

我需要一种方法来解决这个问题。

【问题讨论】:

  • ECall 方法必须打包到系统模块中。这意味着 InternalCall 类型的所有调用只能从 mscorlib.dll 等进行,但没有用户创建的程序集。
  • 统一如何称呼他们?我需要一种绕过它的方法。
  • 如何将 ksp DLL 导入 Unity 项目?
  • @S.Richmond 我正在将其导入到普通的 VS2010 项目中

标签: c# .net unity3d


【解决方案1】:

MethodImplOptions.InternalCall 仅表示StopAllCoroutines 直接在 CLR 中实现,而不是在 BCL(或其他一些库)中实现。这是MSDN

至于修改Unity3D不调用这个,你将无法绕过它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-18
    • 1970-01-01
    • 1970-01-01
    • 2020-04-22
    相关资源
    最近更新 更多