2013-04-01 6 views
8

Ich versuche, das Kerbal Space Program (KSP) Binärdateien in einem der KSP Teilmodelle lesen zu verwenden, ich habe die KSP-Binärdateien und UnityEngine.dll unter Referenzen hinzugefügt dann das folgende ich tue:Probleme beim Versuch, ksp/unity3d-Binärdateien zu verwenden?

Planet p = new Planet(); 

des Lauf gibt mir die folgende Sicherheitsausnahme:

eCall Methoden müssen in ein System Modul verpackt werden.

Kann ich das umgehen oder beheben?

Edit:

Ich fand heraus, dass es nicht von der KSP dll ist aber von untiy diejenigen, die sie verwenden:

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

ich einen Weg brauchen daran vorbei.

+0

ECall-Methoden müssen in einem Systemmodul zusammengefasst sein. Dies bedeutet, dass alle Aufrufe vom Typ InternalCall nur von mscorlib.dll und dergleichen erfolgen können, aber keine vom Benutzer erstellte Assembly. – Middas

+0

Wie nennt die Einheit sie? Ich brauche einen Weg, um es zu umgehen. –

+0

Wie importieren Sie die ksp-DLL in Ihr Unity-Projekt? –

Antwort

0

MethodImplOptions.InternalCall zeigt lediglich an, dass StopAllCoroutines direkt in der CLR und nicht in der BCL (oder einer anderen Bibliothek) implementiert ist. Hier ist MSDN.

Wenn Sie überprüfen, dass Unity3D dies nicht aufruft, können Sie es nicht umgehen.