Laden...

Windows Form als Eingabefläche für Unity

Erstellt von Petra1971 vor 2 Jahren Letzter Beitrag vor 2 Jahren 585 Views
P
Petra1971 Themenstarter:in
5 Beiträge seit 2017
vor 2 Jahren
Windows Form als Eingabefläche für Unity

Morgen und ein schönes Wochenende.

Ich möchte mir für Systemaufstellungen über Zoom, ein eigenes "Spielbrett" machen.

Dazu benötige ich 8 Figuren, die jeweils Namen tragen und sich bewegen lassen. (dazu wäre unity geeignet)

Vorgeschalten zum Brett sollte ein Formular sein, in dem der Klient auswählt welche Figuren er braucht (männlich erwachsen, weiblich kind, tier, gefühl ... ) die ich dann in Laufzeit erstellen lassen möchte (von Unity) und diesen auch Namen gibt.

Dazu hab ich mir mit WindowsForms ein Formular zusammengezimmert, 8 Textboxen für die Namen und daneben 8 Komboboxen mit Auswahl für die Form (Farbei kommt noch) und einen abschickbutton

meine Fragen nun:

Ist das überhaupt möglich die 2 Teile zu verbinden? sonst muss ich mir eine andere lösung suchen

wie lese ich das textfeld aus? (testhalber mal in ein konsolenfeld) Klickevent auf den Button. dann variable erstellen, variable mit console.writeLine auslesen, aber wie bekomm ich das textfeld in die variable.

Ich weiss es sollte ganz einfach gehen, (aber ich hab grad einen Knopf im Hirn, weiss nicht wo ich ansetzen soll. Mir fehlen die Stichworte. (Bin in c# relativ neu, habe vor jahren php, css, und sql gelernt.

Danke für die Hilfe

Petra

4.931 Beiträge seit 2008
vor 2 Jahren

Könntest du mal einen Screenshot davon machen, welche 2 beiden Programme du verbinden möchtest?

P
Petra1971 Themenstarter:in
5 Beiträge seit 2017
vor 2 Jahren

Bitte gerne. WindowsForm ist soweit erstellt (noch keine Schönheit, da ich den Bogen noch nicht ganz raus habe, dass die Abstände ganz gleich werden, aber das wird dann wohl eher mit Code als mit verschieben gehen) und lässt mich auch auf die Schnelle (wie man sieht) die Eingabe auslesen.

Unity ist momentan ein Tutorial das ich nacharbeite, aber im Prinzip stellt die Kapsel eine Figur dar, Der Zylinder eine Person und der Quader ein Kind.

Es wird das Ganze über meinen eigenen Computer laufen

Überlegung 1 von heute nacht .... kann ich in der Startroutine des Spiels einfach auf die Windowsform verlinken. grob gesagt


privat void start(.....)
{
   initialise formular mit link zum Ordner

}



Die Verknüpfung von Namen zur Figur werde ich wohl im Formularcode unter dem Button.Click event abspeichern


   private void ButtonClick(object sender, EventArgs e)
        {
// aktueller Test ob die die Eingabefelder auslesen kann kommt dann weg
            string userInput = Name1.Text;
            string userInput2 = Name2.Text;

            MessageBox.Show(userInput);
//stattdessen
          string userinput = Name1.Text;
          If ( Combobox = männlich erwachsen )
                {
erstelle Figur erwachsenM;
beschrifte Figur mit (userinput)   ;}
// oder kann ich mir die Variablen schenken wenn ich gleich schreibe beschrifte Figur mit Name1.Text?

        }

16.807 Beiträge seit 2008
vor 2 Jahren

Ich bin mir nicht sicher, ob da mein Wissen noch aktuell ist (durch den Umbruch in die neuen .NET 5 Welt); aber zumindest waren früher Unity und Windows Forms (.NET Framework) nicht durchgängig kompatibel zueinander.
Grund war, dass Unity auf Mono basiert(e), damit unter der Haube nicht identisch und zusätzlich nicht alle WinForms Features in Mono vorhanden waren.

Andersrum war es einfacher: man konnte mit Hilfe der Win32 API in ein WinForms/WPF/UWP Window durchaus ein Unity-Fenster (aka Prozess) laufen lassen.

C
55 Beiträge seit 2020
vor 2 Jahren

Unity bringt eigentlich sogar schon selbst eine Libary zum bauen einer UI mit. Was spricht dagegen diese zu verwenden?

@Abt Ich glaube das hat sich bisher auch nicht geändert.

P
Petra1971 Themenstarter:in
5 Beiträge seit 2017
vor 2 Jahren
Danke

@Abt, ich habe es fast befürchtet, Den letzten Eintrag dass das nicht so funktioniert habe ich zwar aus dem Jahr 2012 gefunden, daher hatte ich Hoffnung, dass da was geändert wurde.

@ClaraSoft, Danke für den Tip, da werd ich mich gleich dahinterklemmen.