Ich habe eine randlose Fensteranwendung und eine "falsche" Titelleiste erstellt, um sie zu ziehen.
Ich benutze user32.dll,
Dies, um das Ziehen des Fensters zu starten (ausgelöst durch Unity IBeginDragHandler):
%Vor%Und damit aufhören zu ziehen (nicht sicher über diesen Teil):
%Vor%Es funktioniert gut auf Editor und auf Build, aber ein Fehler, der auf developement build erzeugt:
Eine abnormale Situation ist aufgetreten: die PlayerLoop interne Funktion wurde rekursiv aufgerufen. Bitte kontaktieren Sie den Kundendienst mit einem Beispielprojekt, damit wir das Problem reproduzieren und Fehler beheben können es. LauncherWindow: SendMessage (IntPtr, Int32, Int32, Int32) LauncherWindow: StartWindowDrag () (bei E: \ Unity Projects \ Crime Club Startprogramm \ Assets \ Skripts \ Lib \ LauncherWindow.cs: 115) WindowDragZone: UnityEngine.EventSystems.IBeginDragHandler.OnBeginDrag (PointerEventData) (unter E: \ Unity-Projekte \ Crime Club Launcher \ Assets \ WindowDragZone.cs: 9) UnityEngine.EventSystems.ExecuteEvents: Execute (IBeginDragHandler, BaseEventData) (um C: \ Buildslave \ Unity \ Build \ Erweiterungen \ guisystem \ UnityEngine.UI \ EventSystem \ ExecuteEvents.cs: 64) UnityEngine.EventSystems.ExecuteEvents: Ausführen (GameObject, BaseEventData, EventFunction'1) (um C: \ Buildslave \ Unity \ Build \ Erweiterungen \ guisystem \ UnityEngine.UI \ EventSystem \ ExecuteEvents.cs: 261) UnityEngine.EventSystems.PointerInputModule: ProcessDrag (PointerEventData) (beim C: \ Buildslave \ Unity \ Build \ Erweiterungen \ guisystem \ UnityEngine.UI \ EventSystem \ InputModules \ PointerInputModule.cs: 261) UnityEngine.EventSystems.StandaloneInputModule: ProcessMouseEvent (Int32) (beim C: \ Buildslave \ Unity \ Build \ Erweiterungen \ guisystem \ UnityEngine.UI \ EventSystem \ InputModules \ StandaloneInputModule.cs: 434) UnityEngine.EventSystems.StandaloneInputModule: ProcessMouseEvent () (at C: \ Buildslave \ Unity \ Build \ Erweiterungen \ guisystem \ UnityEngine.UI \ EventSystem \ InputModules \ StandaloneInputModule.cs: 412) UnityEngine.EventSystems.StandaloneInputModule: Process () (at C: \ Buildslave \ Unity \ Build \ Erweiterungen \ guisystem \ UnityEngine.UI \ EventSystem \ InputModules \ StandaloneInputModule.cs: 186) UnityEngine.EventSystems.EventSystem: Update () (um C: \ Buildslave \ Unity \ Build \ Erweiterungen \ guisystem \ UnityEngine.UI \ EventSystem \ EventSystem.cs: 283)
Was denkst du darüber?
BEARBEITEN: Okay, ich habe diesen Fehler endlich beseitigt, indem ich
ersetzt habe %Vor%von:
%Vor%Jetzt habe ich ein letztes kleines Problem: Die Fenster werden gezogen, fallen bei der Maus-Freigabe, aber ich sehe aus, als ob das Fenster den Fokus auf etwas wie das verliert: Der erste Klick fehlt immer, ich muss zweimal klicken, um wieder ziehen zu können oder einfach mit der Unity-App zu interagieren.
Ich habe Funktionen von User32 in OnEndDrag ausprobiert: ShowWindow, SetActiveWindow, SetFocus usw. Alles, was ich gefunden habe, hängt mit diesem Problem zusammen, aber alle haben keinen sichtbaren Effekt und ich muss immer noch zweimal klicken.