Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

11

22.06.2016, 12:30

Na ja, das Problem ist nicht nur, dass Java keine Delegates versteht, sondern dass Du da einen Wechsel zwischen drei verschiedenen Kontexten hast. ;)
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Renegade

Alter Hase

  • »Renegade« ist der Autor dieses Themas

Beiträge: 494

Wohnort: Berlin

Beruf: Certified Unity Developer

  • Private Nachricht senden

12

22.06.2016, 12:40

Na ja, das Problem ist nicht nur, dass Java keine Delegates versteht, sondern dass Du da einen Wechsel zwischen drei verschiedenen Kontexten hast. ;)


Sehr gut - jetzt kommen wir zum Knackpunkt der Angelegenheit. Wie kann ich das Problem sinnvoll lösen?
Liebe Grüße,
René

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

13

22.06.2016, 12:53

Ich weiß nicht genau, theoretisch geht der Weg von C++ in beide Richtungen "relativ" gut. Ich kann aber nicht beurteilen wie gut man in Unity an die native Schicht ran kommt. Müsste ich mal einen Kollegen fragen, die machen sowas irgendwie für NFC-Kram. Über 'n eigenes Plugin haben die das gelöst, so viel weiß ich.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

14

22.06.2016, 15:38

Und es wurde noch nicht darauf eingegangen, warum mein vorgeschlagener Lösungsansatz nicht funktionieren wurde. Er benötigt nicht das SendMessage-System, vorausgesetzt, dass man aus Java-Code heraus grundsätzlich eine C# Methode aufrufen kann. Selbst wenn das zwingend SendMessage benötigen würde, bräuchtest du nur 1 "DontDestroyOnLoad"-GameObject, welches als Ziel von "SendMessage" aufrufen für eine Nachricht ("Event eingetreten") dienen kann.
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

15

22.06.2016, 15:43

Jo, mein Kollege hat mir geantwortet und es klang so, als ob sie genau das ebenfalls machen. Er hat mir auch 'ne Implementierung geschickt, die müsste ich aber erst anonymisieren.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Renegade

Alter Hase

  • »Renegade« ist der Autor dieses Themas

Beiträge: 494

Wohnort: Berlin

Beruf: Certified Unity Developer

  • Private Nachricht senden

16

22.06.2016, 16:13

Und es wurde noch nicht darauf eingegangen, warum mein vorgeschlagener Lösungsansatz nicht funktionieren wurde. Er benötigt nicht das SendMessage-System, vorausgesetzt, dass man aus Java-Code heraus grundsätzlich eine C# Methode aufrufen kann. Selbst wenn das zwingend SendMessage benötigen würde, bräuchtest du nur 1 "DontDestroyOnLoad"-GameObject, welches als Ziel von "SendMessage" aufrufen für eine Nachricht ("Event eingetreten") dienen kann.


Dein Ansatz bzgl. eines "DontDestroyOnLoad"-GameObjects und SendMessage funktioniert definitv - so habe ich es bereits in Projekten genutzt.
Die Frage besteht auch für mich grundsätzlich: Ist es möglich aus Java DIREKT C# Methoden aufzurufen?

Jo, mein Kollege hat mir geantwortet und es klang so, als ob sie genau das ebenfalls machen. Er hat mir auch 'ne Implementierung geschickt, die müsste ich aber erst anonymisieren.


Wenn es sich dabei um eine SendMessage Implementierung dreht kannst du dir die Mühe sparen, ansonsten immer her damit - ich bin neugierig :)

PS: Heißt dein Kollege zufällig Stefan?
Liebe Grüße,
René

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

17

22.06.2016, 16:32

Nun, *direkt* wirst Du das nie können. Das geht nämlich so nicht, das sagte ich ja oben schon mit dem Hinweis auf mehrere Kontext-Wechsel. Irgendjemand muss dazwischen immer übersetzen. Auf der einen Seite JNI und auf der anderen ein C# Marshalling. Meine Kollegen rufen allerdings scheinbar "indirekt" Methoden von gewünschten Objekten auf. Also vom Prinzip her Callbacks. Aber wie gesagt war das glaube ich auch irgendeine Messaging-Implementierung von Unity und der Payload waren rohe Bytes. Konkret werden dabei Unity-Objekte informiert, sobald Daten über einen NFC-Chip von Android empfangen werden. Das dürfte eigentlich für Deine Zwecke dienlich sein, aber wenn Du da anderer Meinung bist, kann ich Dir nicht weiter helfen. Der relevante Kollege heißt übrigens nicht Stefan.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Renegade

Alter Hase

  • »Renegade« ist der Autor dieses Themas

Beiträge: 494

Wohnort: Berlin

Beruf: Certified Unity Developer

  • Private Nachricht senden

18

22.06.2016, 16:53

Was haltet ihr von der Überlegung die Kommunikation über Sockets (java.net.Socket zu System.Net.Sockets.Socket) zu lösen? Ist das ein gängiger Weg zur Kommunikation zwischen zwei verschiedenen Sprachen/Umgebungen?
Liebe Grüße,
René

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

19

22.06.2016, 17:13

Dafür, dass da nur eine Anwendung mit sich selbst redet, finde ich die Idee nicht so genial. Technisch wird das aber schon gehen. Dann baust Du aber auch nur Deine eigene Messenger-Implementierung rundrum. Welchen Vorteil hat das?
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Renegade

Alter Hase

  • »Renegade« ist der Autor dieses Themas

Beiträge: 494

Wohnort: Berlin

Beruf: Certified Unity Developer

  • Private Nachricht senden

20

22.06.2016, 19:28

Dafür, dass da nur eine Anwendung mit sich selbst redet, finde ich die Idee nicht so genial. Technisch wird das aber schon gehen. Dann baust Du aber auch nur Deine eigene Messenger-Implementierung rundrum. Welchen Vorteil hat das?


Unabhängigkeit von Unity, da die Engine lediglich zum Level erstellen, Rendern und Sound abspielen genutzt wird. Mal ganz davon abgesehen habe ich nicht vor mein eigenes Message System zu baun, nur muss es eine schlüssige Lösung für dieses Problem geben. Wie wird denn so etwas allgemein gehandhabt, wenn Java und C# kommunizieren müssen? Mir erschließt sich nicht der Weg von Java zu C# ohne Unity.
Liebe Grüße,
René

Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von »Renegade« (22.06.2016, 19:44)


Werbeanzeige