2014-07-01 3 views
6

sto usando Unity3D 4.3 e chiamando uno DLL che ho creato. quando si cerca di richiamare l'unica funzione che hanno, che è questo:Unity3D Il codice non sicuro richiede l'opzione della riga di comando `non sicura 'da specificare

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

unità mi dà un errore:

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

così nel mio MonoDevelop ho aperto: Project->Assembly-Csharp options e accese la modalità unsafe.

esso riduce una parte degli errori, ma quest'ultima non andrà via

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

cosa shoud che faccio?

+0

Avete più di un progetto? Può essere che è necessario controllare che l'impostazione su più di un progetto –

risposta

11

Andare alla pagina delle proprietà del progetto e verificare in Build la casella di controllo Allow unsafe code. Questo dovrebbe risolvere il tuo problema.

+0

proprietà del progetto in unità o in MonoDevelop? –

+0

Avete in entrambi i codici non sicuri? Quindi per entrambi. –

+0

il codice non sicuro è nello script C# che è collegato a un oggetto in unità, che quindi? –

0

Hai provato this?

sguardo alla quinta commento

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

Sto correndo da un pc –

+0

Miloš Selečéni, quale versione di Unity è questa per? Il mio ha una cartella Frameworks, ma non MonoCompiler.framework. – cowlinator

8

Ecco che cosa ha funzionato per me con Unity3D 5.3:
- Se nella vostra unità costruire Impostazioni-> Player Impostazioni-> Oth er Settings, "API Compatibility Level" è ".Net 2.0", crea un file sotto la tua cartella Unity Asset chiamata gmcs.rsp, aggiungi questa seguente riga al file:
-unsafe
Chiudi Unity e aprilo di nuovo.
- Se il "Livello di compatibilità API" è ". Sottoinsieme 2.0", il nome file sopra dovrebbe essere: smcs.rsp.

Vedere l'immagine qui sotto per trovare la posizione di "" API livello di compatibilità" impostazione in Unity.
enter image description here

Problemi correlati