Czy Unity pozwala ci pisać w Javie? [Zamknięte]

12

Jestem dość nowy w korzystaniu z Unity3D, ale mam bardzo dobrą znajomość programowania Java i Androida. Jestem naprawdę zdezorientowany, że jeśli Java jest w ogóle potrzebna do tworzenia aplikacji na Androida? Czytałem gdzieś w dokumentacji Unity, że dodanie zachowania do obiektów w Unity wymaga użycia skryptów i że jedność obsługuje tylko skrypty C #, .Net i Boo. Czy w ogóle nie ma zastosowania w Javie?

Aman Grover
źródło
15
Znając Javę, znasz już 90% C #.
Philipp
jMonkeyEngine, jak zaznaczono w odpowiedzi SilverTigera, obsługuje teraz zarówno tworzenie systemów iOS, jak i Android, oprócz tworzenia komputerów stacjonarnych. jMonkeyEngine jest darmowy i używa Java. Używam go do tworzenia gier.
Jason Crosby
@Philipp, a co z C #? Znam już C #, a więc tak samo, jak znam 90% Java?
Asif Mushtaq,
@Filipp dobrze, nie. Równie dobrze możesz powiedzieć „Kiedy znasz ALGOL, znasz już 90% C” lub „Kiedy znasz asembler x86, znasz już 90% dowolnego asemblera”, lub „kiedy umiesz prowadzić rower, już wiesz umieć prowadzić ciężarówkę "... twoja analogia jest błędna na tak wielu poziomach westchnienia . Jedyne, co możesz powiedzieć, to że „kiedy znasz Javę, znasz już 90% składni C #”. Zapewniam cię, że nie znam nikogo, kto zna tylko Javę i nie ma dostępu do dokumentów, które mogłyby napisać działający kod C # bez wcześniejszego doświadczenia.
4
Ja głosuje, aby zamknąć to pytanie jako off-topic, bo to o robi produkt X obsługuje funkcji Y .
Vaillancourt

Odpowiedzi:

11

Java nie jest obsługiwana przez Unity. Powinieneś jednak sprawdzić C #; jest to bardzo podobny język, który czerpie duży wpływ z Javy, jednocześnie prawdopodobnie wygładzając niektóre z bardziej surowych krawędzi tego języka. Należy również zauważyć, że będziesz potrzebować zarówno Unity Pro, jak i Unity Android Pro, aby tworzyć gry na Androida za pomocą Unity. Jak zauważają jhocking i ashes999 w komentarzach, nie potrzebujesz komercyjnych gier Unity na urządzenia z systemem Android Unity Pro i Unity Android Pro.

Sokole oko
źródło
3
Nie jest do końca prawdą, że potrzebujesz Androida Pro, aby tworzyć gry na Androida. Możesz wdrożyć na Androida z bezpłatnej wersji Unity, ale będziesz mieć kilka ograniczeń dotyczących wynikowej aplikacji (najbardziej widocznie, będzie miał ekran powitalny Unity, a nie własny ekran powitalny). Jeśli chcesz dodatkowe funkcje Androida Pro potem trzeba wiosną zarówno dla Unity Pro i Unity Android Pro.
jhocking
Czy będziesz w stanie komercyjnie sprzedać aplikację?
Eagle-Eye
3
@ Eagle-Eye tak, wierzę, że tak. Darmowa wersja Unity przeznaczona jest dla firm o rocznych przychodach poniżej 100 000 USD.
ashes999
Jest bardzo podobny, ale jest DUŻO bardziej szczegółowy i brakuje w nim tysięcy bibliotek, które ułatwiają kodowanie w Javie. Przykład, ktoś ProGuard? Runnable? Lista SocketIO .. jest długa
Oliver Dixon
4

Unity obsługuje tylko C#, JavaScripti BooScriptskryptów. Jednak, jak wspomniano Philipp, jeśli znasz Javę, znasz 90% C #. Nadal znam tylko Javę i C ++ i łatwiej jest mi przetłumaczyć moją logikę na C # (biorąc pod uwagę, że nie wiedziałem wiele o C # nawet po kodowaniu przez rok w Unity).

Możesz jednak napisać wtyczki w Javie dla dowolnej funkcji natywnej nie dostarczonej przez Unity lub zaimplementować pakiet SDK innej firmy, taki jak reklamy wykonane specjalnie na platformę Android. To samo dotyczy Objective-C na platformę iOS.

Nowicjusz
źródło
1) Unity nie obsługuje Boo przez jakiś czas, 2) w rzeczywistości był to UnityScript, a nie JavaScript, z którego korzystał Unity, 3) UnityScript również stał się przestarzały. W związku z tym odpowiedź ta jest obecnie nieco przestarzała.
2

W rzeczywistości możesz używać skompilowanej między Javą Java (tj. Źródła Java skompilowanego np. Do zarządzanego kodu .NET) z Unity3D - ma pewne zastrzeżenia i problemy, ale jest to zdecydowanie możliwe, przynajmniej na poziomie dowodu koncepcji; to też nie muszą być wykonywane przez system wtyczek, jak IKVM generuje automagicznie kodu zarządzanego i udało libs mogą być mocowane bezpośrednio:

http://answers.unity3d.com/questions/15308/can-i-access-java-code-from-unity.html

http://www.mono-project.com/docs/about-mono/languages/java/

więc tak, pozostałe dwie odpowiedzi są w rzeczywistości błędne.


źródło