Czy można używać C ++ z Unity zamiast C #?


Odpowiedzi:


23

Możliwe jest używanie C ++ z darmową wersją Unity, chociaż łatwiej jest pracować, jeśli masz licencję Unity Pro. Wszystko, co musisz zrobić, to owinąć go w bibliotekę DLL i postępować zgodnie z instrukcjami poniżej, gdzie go umieścić.

Napisałem artykuł na ten temat: Unity i DLL: C # (zarządzany) i C ++ (niezarządzany)

Dla Unity 4 Free:

  • Dodaj niezarządzany kod do katalogu głównego Unity Project: UnityProject
  • Dodaj kod zarządzany do folderu Wtyczki: UnityProject->Plugins
  • Podczas budowania projektu skopiuj niezarządzany kod do BuildRoot-> Data->Plugins

Dla Unity 4 Pro i dowolnej Unity 5:

  • Po prostu skopiuj biblioteki DLL do UnityProject->Plugins

Niezarządzane oznacza C ++, a Zarządzane oznacza C #


1
Czy zmieniło się to w Unity 5, gdzie darmowa wersja zawiera wszystkie funkcje silnika wersji pro?
GeekyMonkey

1
@GeekyMonkey Zaktualizowano artykuł i odpowiedz.
MLM

Nie ma sensu próbować zamieniać C # na C ++ w kontekście Unity3D. Ta odpowiedź może być pomocna, jeśli poproszono o połączenie z kodem macierzystym.
aggsol

1
Dzięki nowej technologii IL2C ++ nie ma wielu powodów, aby używać C ++ zamiast C #. Obecnie jest ograniczony do platform mobilnych, ale spodziewamy się, że technologia będzie wkrótce dostępna na PC.
JPtheK9,

1
@ user2023370 Zaktualizowałem tę część, aby uczynić język jaśniejszym „Unity 4 i poniżej”, dzięki za komentarz :)
MLM

1

Jest to możliwe, choć niewygodne. Aby to osiągnąć, musisz napisać zarządzany C ++. I tak, istnieje coś takiego jak zarządzany C ++. Zarządzane nie oznacza konkretnie C # i niezarządzanego C ++. Aby to osiągnąć, musisz zaimportować plik DLL UnityEngine. Po zakończeniu umieść go w folderze (Unity Project Name) / Plugins. Oto kod, którego użyjesz: W pliku C ++:

public ref class CPPUNITY {
  public:
     void Start() {
         Debug::Log("C++ printed message");
     }

};

W pliku C #:

     using UnityEngine;
     public class FileName {
         void Start() {
              CPPUNITY.Start();
         }
     }

Dokładny kod nie działałby, ale to podstawa.


Czy środowisko uruchomieniowe mono używane w Unity wreszcie obsługuje zestawy trybu mieszanego? Kilka lat temu nie mieliśmy szczęścia w 4 i zespołach z VS 2012, więc byłoby naprawdę świetnie!
Oliver
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.