2014-07-01 10 views
6

Ich verwende Unity3D 4.3 und rufe eine DLL auf, die ich erstellt habe. beim Versuch, die einzige Funktion nennen es die dies haben:Unity3D Unsicherer Code erfordert die Angabe der `unsicheren 'Kommandozeilenoption

void GetModelReferences(int &nVertices, float * vertices, int &nTriangles, int * triangles, float * normals, float * uvCoordinates); 

Einheit gibt mir eine Fehlermeldung:

Unsafe code requires the `unsafe' command line option to be specified 

so in meinem MonoDevelop i geöffnet: Project->Assembly-Csharp options und schaltete den unsafe-Modus.

reduziert Teil der Fehler aber dieses letzte man wird nicht weggehen

Unsafe code requires the `unsafe' command line option to be specified 

was shoud ich tun?

+0

Haben Sie mehr als ein Projekt? Kann sein, dass Sie überprüfen müssen, dass mehr als eine Einstellung auf Projekt –

Antwort

11

Gehen Sie auf die Seite mit den Projekteigenschaften und überprüfen Sie unter Build das Kontrollkästchen Allow unsafe code. Dies sollte Ihr Problem lösen.

+0

Projekt Eigenschaften in Einheit oder in MonoDevelop? –

+0

Haben Sie beide in unsicheren Code? Dann für beide. –

+0

der unsichere Code ist in der C# Skript, das an ein Objekt in Einheit, was dann? –

0

Haben Sie versucht this?

Blick auf den fünften Kommentar

Firstly show the contents of Unity.App and drill down to Contents/Frameworks/MonoCompiler.framework.

Open the file called compile_any.pl and in the section "# Run the csharp compiler" change @Base_Args options as below:

my @base_args=($mono_path, $mcs_path, '-debug', '-unsafe', '-target:library', '-nowarn:0169', '-out:'.$output, );

+0

Ich laufe von einem PC –

+0

Miloš Selečéni, welche Version von Unity ist dies zum? Meine hat einen Frameworks-Ordner, aber keinen MonoCompiler.framework. – cowlinator

8

Hier ist, was für mich mit Unity3D 5.3 gearbeitet:
- Wenn in Ihrem Unity Build-Stell-> Spieler Stell-> Oth Einstellungen, "API Compatibility Level" ist ".Net 2.0", erstellen Sie eine Datei in Ihrem Unity Asset-Ordner namens gmcs.rsp, fügen Sie der Datei die folgende Zeile hinzu:
-unsafe
Schließen Sie Unity und öffnen Sie es erneut.
- Wenn die "API-Kompatibilitätsstufe" ".Net 2.0 Subset" ist, sollte der obige Dateiname lauten: smcs.rsp.

das Bild Siehe unten die Position „“ API-Kompatibilitätsgrad“in Unity Einstellung zu finden.
enter image description here