2014-07-01 11 views
6

Używam Unity3D 4.3 i używam DLL, którą utworzyłem. podczas próby wywołania jedyną funkcją, która go mieć to:Unity3D Unsafe code wymaga określenia opcji "unsafe" w linii poleceń.

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

jedność daje mi błąd:

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

więc moim MonoDevelop Otworzyłem: Project->Assembly-Csharp options i włączony tryb unsafe.

redukuje część błędów, ale ten ostatni przyzwyczajenie odejść

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

co shoud zrobić?

+0

Czy masz więcej niż jeden projekt? Może być tak, że trzeba sprawdzić, czy ustawienie na więcej niż jednym projekt –

Odpowiedz

11

Przejdź do strony właściwości projektu i sprawdź w obszarze Build pole wyboru Allow unsafe code. To powinno rozwiązać twój problem.

+0

właściwości projektu w jedności lub w MonoDevelop? –

+0

Czy masz zarówno w niebezpieczny kod? Następnie dla obu –

+0

niebezpieczny kod jest w skrypcie C#, który dołączony do obiektu w jedności, co następnie? –

0

Czy próbowałeś już this?

spojrzenie na piątym komentarzu

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

Jestem uruchomiony z komputera –

+0

Miloš Selečéni, która wersja Unity to dla? Mine ma folder Frameworks, ale nie ma MonoCompiler.framework. – cowlinator

8

Oto co pracował dla mnie z Unity3D 5.3:
- Jeśli w Jedności Budowanie Ustawienia-> odtwarzacz Ustawienia-> Oth er Ustawienia, "Poziom kompatybilności API" to ".Net 2.0", utwórz plik w folderze Unity Asset o nazwie gmcs.rsp, dodaj następującą linię do pliku:
-nie bezpieczna
Zamknij Jedność i otwórz ją ponownie.
- Jeśli "Poziom zgodności API" to "Podzbiór .NET 2.0", powyższa nazwa pliku powinna wyglądać następująco: smcs.rsp.

Patrz zdjęcie poniżej, aby znaleźć lokalizację „” API poziom zgodności”Ustawianie w Jedności.
enter image description here