[SUPPORT] Touch Interface Designer

Hi @Samuel77ysb

Sorry for the crash!

What version of the plugin are you using?

Is it a multiplayer game? If so, online or local only?

If I understand correctly, the problem appears when you try to interact with the touch interface while you possess another pawn, right?

Iā€™ve had a discord for some time. Iā€™ll add the link to this thread.

Si, cuando poseo otro peon, me crashea, solo uso, on begin play add to player screen y listo, pero aveces al usar el boton crashea

No me puedes pasar una version mas antigua para unreal engine 5?, es que esta version me da crasheos en el editor y en el mobile simplemente se sale el juego, y me esta retrasando mucho, de verdad me encanta este plugin, pero tiene crasheo y no se porque, ya que no pasaba antes. No se si sera mi proyecto o que sera, pero esta pasando seguido.

@Samuel77ysb

Which version are you using? Version 3.2 solves a lot of problems.

Please forgive if this sounds like a dumb question. I have created a mouse and gamepad driven experience for my company to use at trade shows, but now they want it to be touchscreen capable. Any functionality that relies on mouse clicks works just fine on a touchscreen, but I was wondering if your plugin will help me with enabling rotation and navigation through swipe and drag gestures. Please note this experience will NOT be running on a mobile device. At least not right awayā€¦

Thanks in advance for your input!

Hi @VoxelOne

Touch Interface Designer works on PC and Mobile. I suggest you visit the official website to discover all the integrated features.

Touch Interface Designer integrates virtual controls allowing you to manipulate the camera or a character. Gestures such as swipe, drag, press, zoom or rotate are also supported, but youā€™ll need to code the necessary logic in C++ or Blueprint.

Donā€™t hesitate to contact us if you have any further questions.

Awesome. Thanks for the quick reply. Iā€™ll head over there now. :slightly_smiling_face:

Iā€™m not sure what Iā€™m doing wrong, but I canā€™t get my button layers to recognize the pressed bitmask. From the screenshot below, you can see that I have the Pressed bitmask assigned to a different layer than the background/unpressed bitmask. All image textures are set up as 2D user interface with alpha. When I turn on the preview it doesnā€™t show the pressed layer. Also doesnā€™t show when I run PIE.

What am I doing wrong?

Hi @VoxelOne In the case of a button, you must indicate that the layer is displayed for the background. Background and Pressed.

A-HA! That did the trick. Perfect and thanks for the super quick response!

1 Like

Ran into an interesting issue today with a virtual joystick and a real gamepad joystick. This was with TID 3.2.1 and UE 5.1.1

I have a ā€œgameā€ that gives the user an option to use a real gamepad or a touch interface. Therefore I created an Enhanced Input Action for the gamepad with movement logic using the gamepad joystick 2D axis. I have a separate Enhanced Input Action for the virtual joystick in the touch interface designer that also uses the gamepad joystick 2d axis.

I figured since they were two different Input Actions mapped to two different Input Mapping Contexts, the real gamepad would use a different input action than the virtual joystick. BUT it turns out that somehow, the real gamepad joystick calls both itā€™s own input action AND the virtual joystick action simultaneously!

It was freaking me out that I had disconnected my real gamepad logic ā€“ except for a print string to show inputs, but my character was still moving while I was getting input printouts on screen from the gamepad logic. I disconnected my virtual joystick Input Action and my character stopped moving.

The workaround was to create a bool and a branch to tell the virtual joystick input action to use one set of logic when the user selects the gamepad and the other when using touch.

But just figured you should knowā€¦or maybe you have a better workaround?

@VoxelOne Thank you for sharing this with me, itā€™s an interesting case indeed, I appreciate user feedback!

Iā€™m not an expert on Enhanced Input, but can I ask why youā€™re using two different input actions? You can use the same input action on gamepad and virtual joystick.

Have you thought about adding just one Mapping Context?

As far as solutions are concerned, you can disable inputs on the touch interface via the Disable Input function (on subsystem). TID is already able to detect the use of a gamepad, so Iā€™ll see if I can add an option to disable inputs automatically for use cases like yours.

Iā€™m going to do some testsā€¦

OK, Iā€™ve just done some tests and I canā€™t reproduce your use case. Two input actions with the same key (gamepad left joystick 2D Axis) but which are in a different mapping context work perfectly depending on whether you add / remove / modify the priority of the mapping context. The only time both input actions are called is when they are in the same mapping context, or if you add both mapping contexts to the subsystem by defining a priority.

TID already disables inputs when a gamepad is detected (you need to activate the option in settings).

Could you describe your setup in more detail (or even make a video) so that I can reproduce it and see whatā€™s wrong with TID. Thank you!

@Exxassens Thanks again for such a quick reply and apologies for not responding before now. Had to go heads-down for a few days to finish another project. :stuck_out_tongue:

Anyway, my use case is, admittedly, a bit janky. And my implementation is probably somewhat cringe-worthy if reviewed by more experienced coders. Essentially this is not a game, per se. It is actually a touchscreen experience that will be featured at trade shows and will usually be run exclusively as touch. However, there will be times when one of the more savvy sales guys will grab the gamepad and drive it with that. SO, my ā€œpawnā€ and the UI are enabled with both touch and gamepad controls.

The only reason I used two different IAs & mapping contexts was because for some reason, the virtual joystick and the real joystick were sending opposite inputs: pushing the stick forward sent my pawn backward on the virtual joystick, but pushing it forward on the real joystick worked as expected, so I had to add a negate modifier to one IA. In my workaround I just multiplied the input value by -1 to accomplish the same thing.

Now, all that said, after you mentioned priority, I went and looked at that a little closer. Seems I had them both at the same priority. :confused: So this was definitely pilot error. Modifying the priority solves the ā€œproblem.ā€ Feeling kinda dopeyā€¦rookie mistake.

Anyway, thanks again for being so attentive. Your plugin works like a champ!!

1 Like

Hello, I have not been able to recompile this plugin, I am using Unreal Engine 5.2 from source since I am using Linux as my developing platform and I am targeting Android.

This is the output of the RunUAT.sh and I was just wondering if there was any support for Linux as the developing platform, but I must also say I was having issues to recompile the plugin when I was on Windows.

I also need to add that I grabbed this plugin from the marketplace, so I do not know if there is a version I can find in other place with the deprecated errors already resolved.

Running AutomationTool...

Fixing inconsistent case in filenames.
Setting up Mono
Setting up bundled DotNet SDK
Start UAT Non-Interactively: dotnet AutomationTool.dll BuildPlugin -plugin=/home/luisc/Documentos/EpicVault/TouchEditor_5.2/data/Engine/Plugins/Marketplace/TouchEditor/TouchInterfaceDesigner.uplugin -package=/home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner -TargetPlatforms=Linux
Starting AutomationTool...
Parsing command line: BuildPlugin -plugin=/home/luisc/Documentos/EpicVault/TouchEditor_5.2/data/Engine/Plugins/Marketplace/TouchEditor/TouchInterfaceDesigner.uplugin -package=/home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner -TargetPlatforms=Linux
Initializing script modules...
Total script module initialization time: 0.58 s.
Executing commands...
Copying 563 file(s) using max 64 thread(s)
Reading plugin from /home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner/HostProject/Plugins/TouchInterfaceDesigner/TouchInterfaceDesigner.uplugin...
Building plugin for host platforms: Linux
Running: /home/luisc/DATA/Descargas/Linux_Unreal_Engine_5.2/Engine/Binaries/ThirdParty/DotNet/6.0.302/linux/dotnet "/home/luisc/DATA/Descargas/Linux_Unreal_Engine_5.2/Engine/Binaries/DotNET/UnrealBuildTool/UnrealBuildTool.dll" UnrealEditor Linux Development -Project=/home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner/HostProject/HostProject.uproject -plugin=/home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner/HostProject/Plugins/TouchInterfaceDesigner/TouchInterfaceDesigner.uplugin -noubtmakefiles -manifest=/home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner/HostProject/Saved/Manifest-UnrealEditor-Linux-Development.xml -nohotreload -log="/home/luisc/Library/Logs/Unreal Engine/LocalBuildLogs/UBT-UnrealEditor-Linux-Development.txt"
Log file: /home/luisc/Library/Logs/Unreal Engine/LocalBuildLogs/UBT-UnrealEditor-Linux-Development.txt
Parsing headers for UnrealEditor
  Running Internal UnrealHeaderTool /home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner/HostProject/HostProject.uproject /home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner/HostProject/Intermediate/Build/Linux/UnrealEditor/Development/UnrealEditor.uhtmanifest -WarningsAsErrors -installed
Total of 44 written
Reflection code generated for UnrealEditor in 12.0740079 seconds
------- Build details --------
Using toolchain located at '/home/luisc/DATA/Descargas/Linux_Unreal_Engine_5.2/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v21_clang-15.0.1-centos7/x86_64-unknown-linux-gnu'.
Using clang (/home/luisc/DATA/Descargas/Linux_Unreal_Engine_5.2/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v21_clang-15.0.1-centos7/x86_64-unknown-linux-gnu/bin/clang++) version 'clang version 15.0.1
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/luisc/DATA/Descargas/Linux_Unreal_Engine_5.2/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v21_clang-15.0.1-centos7/x86_64-unknown-linux-gnu/bin' (string), 15 (major), 0 (minor), 1 (patch)
Using bundled libc++ standard C++ library.
Using lld linker
Using llvm-ar (/home/luisc/DATA/Descargas/Linux_Unreal_Engine_5.2/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v21_clang-15.0.1-centos7/x86_64-unknown-linux-gnu/bin/llvm-ar) version 'LLVM (http://llvm.org/):
  LLVM version 15.0.1
  Optimized build.
  Default target: x86_64-unknown-linux-gnu
  Host CPU: bdver2 (string)'
Using fast way to relink  circularly dependent libraries (no FixDeps).
------------------------------
Writing manifest to /home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner/HostProject/Saved/Manifest-UnrealEditor-Linux-Development.xml
Building UnrealEditor...
Determining max actions to execute in parallel (6 physical cores, 6 logical cores)
  Executing up to 6 processes, one per physical core
Building 11 actions with 6 processes...
[1/11] Compile SharedPCH.UnrealEd.ShadowErrors.h
[2/11] Compile SharedPCH.Engine.ShadowErrors.h
[3/11] Compile Module.TouchInterface.3_of_3.cpp
In file included from /home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner/HostProject/Plugins/TouchInterfaceDesigner/Intermediate/Build/Linux/x64/UnrealEditor/Development/TouchInterface/Module.TouchInterface.3_of_3.cpp:3:
/home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner/HostProject/Plugins/TouchInterfaceDesigner/Source/TouchInterface/Private/TouchInterface/SVirtualShapeDrawer.cpp:107:23: warning: 'ToPaintGeometry' is deprecated: Use FPaintGeometry ToPaintGeometry(const FVector2f& InLocalSize, const FSlateLayoutTransform& InLayoutTransform) instead. Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile. [-Wdeprecated-declarations]
                                        AllottedGeometry.ToPaintGeometry(Dot.Location - FVector2D(Settings->DrawBrushSize * 0.5f), FVector2D(Settings->DrawBrushSize)),
                                                         ^
/home/luisc/DATA/Descargas/Linux_Unreal_Engine_5.2/Engine/Source/Runtime/SlateCore/Public/Layout/Geometry.h:370:2: note: 'ToPaintGeometry' has been explicitly marked deprecated here
        UE_DEPRECATED(5.2, "Use FPaintGeometry ToPaintGeometry(const FVector2f& InLocalSize, const FSlateLayoutTransform& InLayoutTransform) instead.")
        ^
/home/luisc/DATA/Descargas/Linux_Unreal_Engine_5.2/Engine/Source/Runtime/Core/Public/Misc/CoreMiscDefines.h:259:43: note: expanded from macro 'UE_DEPRECATED'
#define UE_DEPRECATED(Version, Message) [[deprecated(Message " Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile.")]]
                                          ^
1 warning generated.
[4/11] Compile Module.TouchInterface.1_of_3.cpp
[5/11] Compile Module.TouchInterfaceDesigner.cpp
In file included from /home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner/HostProject/Plugins/TouchInterfaceDesigner/Intermediate/Build/Linux/x64/UnrealEditor/Development/TouchInterfaceDesigner/Module.TouchInterfaceDesigner.cpp:27:
/home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner/HostProject/Plugins/TouchInterfaceDesigner/Source/TouchInterfaceDesigner/Private/Presets/STouchInterfacePresetWindow.cpp:194:38: error: loop variable 'Item' creates a copy from type 'const TSharedPtr<SPresetItem>' [-Werror,-Wrange-loop-construct]
                for (const TSharedPtr<SPresetItem> Item : PresetItems)
                                                   ^
/home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner/HostProject/Plugins/TouchInterfaceDesigner/Source/TouchInterfaceDesigner/Private/Presets/STouchInterfacePresetWindow.cpp:194:8: note: use reference type 'const TSharedPtr<SPresetItem> &' to prevent copying
                for (const TSharedPtr<SPresetItem> Item : PresetItems)
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                                   &
/home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner/HostProject/Plugins/TouchInterfaceDesigner/Source/TouchInterfaceDesigner/Private/Presets/STouchInterfacePresetWindow.cpp:293:38: error: loop variable 'Item' creates a copy from type 'const TSharedPtr<SPresetItem>' [-Werror,-Wrange-loop-construct]
                for (const TSharedPtr<SPresetItem> Item : PresetItems)
                                                   ^
/home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner/HostProject/Plugins/TouchInterfaceDesigner/Source/TouchInterfaceDesigner/Private/Presets/STouchInterfacePresetWindow.cpp:293:8: note: use reference type 'const TSharedPtr<SPresetItem> &' to prevent copying
                for (const TSharedPtr<SPresetItem> Item : PresetItems)
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                                   &
/home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner/HostProject/Plugins/TouchInterfaceDesigner/Source/TouchInterfaceDesigner/Private/Presets/STouchInterfacePresetWindow.cpp:303:38: error: loop variable 'Item' creates a copy from type 'const TSharedPtr<SPresetItem>' [-Werror,-Wrange-loop-construct]
                for (const TSharedPtr<SPresetItem> Item : PresetItems)
                                                   ^
/home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner/HostProject/Plugins/TouchInterfaceDesigner/Source/TouchInterfaceDesigner/Private/Presets/STouchInterfacePresetWindow.cpp:303:8: note: use reference type 'const TSharedPtr<SPresetItem> &' to prevent copying
                for (const TSharedPtr<SPresetItem> Item : PresetItems)
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                                   &
/home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner/HostProject/Plugins/TouchInterfaceDesigner/Source/TouchInterfaceDesigner/Private/Presets/STouchInterfacePresetWindow.cpp:312:37: error: loop variable 'Item' creates a copy from type 'const TSharedPtr<SPresetItem>' [-Werror,-Wrange-loop-construct]
        for (const TSharedPtr<SPresetItem> Item : PresetItems)
                                           ^
/home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner/HostProject/Plugins/TouchInterfaceDesigner/Source/TouchInterfaceDesigner/Private/Presets/STouchInterfacePresetWindow.cpp:312:7: note: use reference type 'const TSharedPtr<SPresetItem> &' to prevent copying
        for (const TSharedPtr<SPresetItem> Item : PresetItems)
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                           &
In file included from /home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner/HostProject/Plugins/TouchInterfaceDesigner/Intermediate/Build/Linux/x64/UnrealEditor/Development/TouchInterfaceDesigner/Module.TouchInterfaceDesigner.cpp:30:
/home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner/HostProject/Plugins/TouchInterfaceDesigner/Source/TouchInterfaceDesigner/Private/Preview/STouchInterfacePreviewer.cpp:143:47: error: loop variable 'Widget' creates a copy from type 'const TSharedPtr<SVirtualControlEditor>' [-Werror,-Wrange-loop-construct]
        for (const TSharedPtr<SVirtualControlEditor> Widget : VirtualControlWidgets)
                                                     ^
/home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner/HostProject/Plugins/TouchInterfaceDesigner/Source/TouchInterfaceDesigner/Private/Preview/STouchInterfacePreviewer.cpp:143:7: note: use reference type 'const TSharedPtr<SVirtualControlEditor> &' to prevent copying
        for (const TSharedPtr<SVirtualControlEditor> Widget : VirtualControlWidgets)
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                                     &
In file included from /home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner/HostProject/Plugins/TouchInterfaceDesigner/Intermediate/Build/Linux/x64/UnrealEditor/Development/TouchInterfaceDesigner/Module.TouchInterfaceDesigner.cpp:36:
/home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner/HostProject/Plugins/TouchInterfaceDesigner/Source/TouchInterfaceDesigner/Private/Viewport/STouchInterfaceDesignerRuler.cpp:178:29: warning: 'ToPaintGeometry' is deprecated: Use FPaintGeometry ToPaintGeometry(const FVector2f& InLocalSize, const FSlateLayoutTransform& InLayoutTransform) instead. Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile. [-Wdeprecated-declarations]
                                InArgs.AllottedGeometry.ToPaintGeometry( Offset, TickSize ),
                                                        ^
/home/luisc/DATA/Descargas/Linux_Unreal_Engine_5.2/Engine/Source/Runtime/SlateCore/Public/Layout/Geometry.h:370:2: note: 'ToPaintGeometry' has been explicitly marked deprecated here
        UE_DEPRECATED(5.2, "Use FPaintGeometry ToPaintGeometry(const FVector2f& InLocalSize, const FSlateLayoutTransform& InLayoutTransform) instead.")
        ^
/home/luisc/DATA/Descargas/Linux_Unreal_Engine_5.2/Engine/Source/Runtime/Core/Public/Misc/CoreMiscDefines.h:259:43: note: expanded from macro 'UE_DEPRECATED'
#define UE_DEPRECATED(Version, Message) [[deprecated(Message " Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile.")]]
                                          ^
In file included from /home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner/HostProject/Plugins/TouchInterfaceDesigner/Intermediate/Build/Linux/x64/UnrealEditor/Development/TouchInterfaceDesigner/Module.TouchInterfaceDesigner.cpp:36:
/home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner/HostProject/Plugins/TouchInterfaceDesigner/Source/TouchInterfaceDesigner/Private/Viewport/STouchInterfaceDesignerRuler.cpp:211:30: warning: 'ToPaintGeometry' is deprecated: Use FPaintGeometry ToPaintGeometry(const FVector2f& InLocalSize, const FSlateLayoutTransform& InLayoutTransform) instead. Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile. [-Wdeprecated-declarations]
                                        InArgs.AllottedGeometry.ToPaintGeometry( TextOffset, TextSize ),
                                                                ^
/home/luisc/DATA/Descargas/Linux_Unreal_Engine_5.2/Engine/Source/Runtime/SlateCore/Public/Layout/Geometry.h:370:2: note: 'ToPaintGeometry' has been explicitly marked deprecated here
        UE_DEPRECATED(5.2, "Use FPaintGeometry ToPaintGeometry(const FVector2f& InLocalSize, const FSlateLayoutTransform& InLayoutTransform) instead.")
        ^
/home/luisc/DATA/Descargas/Linux_Unreal_Engine_5.2/Engine/Source/Runtime/Core/Public/Misc/CoreMiscDefines.h:259:43: note: expanded from macro 'UE_DEPRECATED'
#define UE_DEPRECATED(Version, Message) [[deprecated(Message " Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile.")]]
                                          ^
In file included from /home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner/HostProject/Plugins/TouchInterfaceDesigner/Intermediate/Build/Linux/x64/UnrealEditor/Development/TouchInterfaceDesigner/Module.TouchInterfaceDesigner.cpp:36:
/home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner/HostProject/Plugins/TouchInterfaceDesigner/Source/TouchInterfaceDesigner/Private/Viewport/STouchInterfaceDesignerRuler.cpp:234:29: warning: 'ToPaintGeometry' is deprecated: Use FPaintGeometry ToPaintGeometry(const FVector2f& InLocalSize, const FSlateLayoutTransform& InLayoutTransform) instead. Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile. [-Wdeprecated-declarations]
                                InArgs.AllottedGeometry.ToPaintGeometry( Offset, TickSize ),
                                                        ^
/home/luisc/DATA/Descargas/Linux_Unreal_Engine_5.2/Engine/Source/Runtime/SlateCore/Public/Layout/Geometry.h:370:2: note: 'ToPaintGeometry' has been explicitly marked deprecated here
        UE_DEPRECATED(5.2, "Use FPaintGeometry ToPaintGeometry(const FVector2f& InLocalSize, const FSlateLayoutTransform& InLayoutTransform) instead.")
        ^
/home/luisc/DATA/Descargas/Linux_Unreal_Engine_5.2/Engine/Source/Runtime/Core/Public/Misc/CoreMiscDefines.h:259:43: note: expanded from macro 'UE_DEPRECATED'
#define UE_DEPRECATED(Version, Message) [[deprecated(Message " Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile.")]]
                                          ^
In file included from /home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner/HostProject/Plugins/TouchInterfaceDesigner/Intermediate/Build/Linux/x64/UnrealEditor/Development/TouchInterfaceDesigner/Module.TouchInterfaceDesigner.cpp:37:
/home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner/HostProject/Plugins/TouchInterfaceDesigner/Source/TouchInterfaceDesigner/Private/Viewport/STouchInterfaceDesignerViewport.cpp:1759:47: error: loop variable 'TouchDesignerEditor_Control' creates a copy from type 'const TSharedPtr<SVirtualControlEditor>' [-Werror,-Wrange-loop-construct]
        for (const TSharedPtr<SVirtualControlEditor> TouchDesignerEditor_Control : ChildWidgets)
                                                     ^
/home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner/HostProject/Plugins/TouchInterfaceDesigner/Source/TouchInterfaceDesigner/Private/Viewport/STouchInterfaceDesignerViewport.cpp:1759:7: note: use reference type 'const TSharedPtr<SVirtualControlEditor> &' to prevent copying
        for (const TSharedPtr<SVirtualControlEditor> TouchDesignerEditor_Control : ChildWidgets)
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                                     &
In file included from /home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner/HostProject/Plugins/TouchInterfaceDesigner/Intermediate/Build/Linux/x64/UnrealEditor/Development/TouchInterfaceDesigner/Module.TouchInterfaceDesigner.cpp:39:
/home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner/HostProject/Plugins/TouchInterfaceDesigner/Source/TouchInterfaceDesigner/Private/Viewport/SVirtualControlEditor.cpp:365:48: error: loop variable 'VirtualControlEditor' creates a copy from type 'const TSharedPtr<SVirtualControlEditor>' [-Werror,-Wrange-loop-construct]
                for (const TSharedPtr<SVirtualControlEditor> VirtualControlEditor : VirtualControlEditors)
                                                             ^
/home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner/HostProject/Plugins/TouchInterfaceDesigner/Source/TouchInterfaceDesigner/Private/Viewport/SVirtualControlEditor.cpp:365:8: note: use reference type 'const TSharedPtr<SVirtualControlEditor> &' to prevent copying
                for (const TSharedPtr<SVirtualControlEditor> VirtualControlEditor : VirtualControlEditors)
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                                             &
/home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner/HostProject/Plugins/TouchInterfaceDesigner/Source/TouchInterfaceDesigner/Private/Viewport/SVirtualControlEditor.cpp:418:49: error: loop variable 'VirtualControlEditor' creates a copy from type 'const TSharedPtr<SVirtualControlEditor>' [-Werror,-Wrange-loop-construct]
                        for (const TSharedPtr<SVirtualControlEditor> VirtualControlEditor : VirtualControlEditors)
                                                                     ^
/home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner/HostProject/Plugins/TouchInterfaceDesigner/Source/TouchInterfaceDesigner/Private/Viewport/SVirtualControlEditor.cpp:418:9: note: use reference type 'const TSharedPtr<SVirtualControlEditor> &' to prevent copying
                        for (const TSharedPtr<SVirtualControlEditor> VirtualControlEditor : VirtualControlEditors)
                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                                                     &
/home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner/HostProject/Plugins/TouchInterfaceDesigner/Source/TouchInterfaceDesigner/Private/Viewport/SVirtualControlEditor.cpp:456:48: error: loop variable 'VirtualControlEditor' creates a copy from type 'const TSharedPtr<SVirtualControlEditor>' [-Werror,-Wrange-loop-construct]
                for (const TSharedPtr<SVirtualControlEditor> VirtualControlEditor : VirtualControlEditors)
                                                             ^
/home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner/HostProject/Plugins/TouchInterfaceDesigner/Source/TouchInterfaceDesigner/Private/Viewport/SVirtualControlEditor.cpp:456:8: note: use reference type 'const TSharedPtr<SVirtualControlEditor> &' to prevent copying
                for (const TSharedPtr<SVirtualControlEditor> VirtualControlEditor : VirtualControlEditors)
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                                             &
3 warnings and 9 errors generated.
[6/11] Compile Module.TouchInterface.2_of_3.cpp
In file included from /home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner/HostProject/Plugins/TouchInterfaceDesigner/Intermediate/Build/Linux/x64/UnrealEditor/Development/TouchInterface/Module.TouchInterface.2_of_3.cpp:9:
/home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner/HostProject/Plugins/TouchInterfaceDesigner/Source/TouchInterface/Private/Classes/VirtualShape.cpp:74:20: warning: 'operator<' is deprecated: TVector2 comparison operators are deprecated. Use ComponentwiseAllLessThan. For componentwise min/max/abs, use TVector2::{Min,Max,GetAbs}, FMath::{Min,Max,Abs} compute something different. Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile. [-Wdeprecated-declarations]
                if (Dot.Location < TopLeftBound)
                                 ^
/home/luisc/DATA/Descargas/Linux_Unreal_Engine_5.2/Engine/Source/Runtime/Core/Public/Math/Vector2D.h:239:2: note: 'operator<' has been explicitly marked deprecated here
        UE_DEPRECATED(5.1, "TVector2 comparison operators are deprecated. Use ComponentwiseAllLessThan. For componentwise min/max/abs, use TVector2::{Min,Max,GetAbs}, FMath::{Min,Max,Abs} compute something different.")
        ^
/home/luisc/DATA/Descargas/Linux_Unreal_Engine_5.2/Engine/Source/Runtime/Core/Public/Misc/CoreMiscDefines.h:259:43: note: expanded from macro 'UE_DEPRECATED'
#define UE_DEPRECATED(Version, Message) [[deprecated(Message " Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile.")]]
                                          ^
In file included from /home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner/HostProject/Plugins/TouchInterfaceDesigner/Intermediate/Build/Linux/x64/UnrealEditor/Development/TouchInterface/Module.TouchInterface.2_of_3.cpp:9:
/home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner/HostProject/Plugins/TouchInterfaceDesigner/Source/TouchInterface/Private/Classes/VirtualShape.cpp:79:20: warning: 'operator>' is deprecated: TVector2 comparison operators are deprecated. Use ComponentwiseAllGreaterThan. For componentwise min/max/abs, use TVector2::{Min,Max,GetAbs}, FMath::{Min,Max,Abs} compute something different. Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile. [-Wdeprecated-declarations]
                if (Dot.Location > BottomRightBound)
                                 ^
/home/luisc/DATA/Descargas/Linux_Unreal_Engine_5.2/Engine/Source/Runtime/Core/Public/Math/Vector2D.h:251:2: note: 'operator>' has been explicitly marked deprecated here
        UE_DEPRECATED(5.1, "TVector2 comparison operators are deprecated. Use ComponentwiseAllGreaterThan. For componentwise min/max/abs, use TVector2::{Min,Max,GetAbs}, FMath::{Min,Max,Abs} compute something different.")
        ^
/home/luisc/DATA/Descargas/Linux_Unreal_Engine_5.2/Engine/Source/Runtime/Core/Public/Misc/CoreMiscDefines.h:259:43: note: expanded from macro 'UE_DEPRECATED'
#define UE_DEPRECATED(Version, Message) [[deprecated(Message " Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile.")]]
                                          ^
2 warnings generated.
[7/11] Link (lld) libUnrealEditor-TouchInterface.so
[8/11] Link (lld) libUnrealEditor-TouchInterfaceDesigner.so cancelled
[9/11] Compile Module.VirtualShapeDesigner.cpp
In file included from /home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner/HostProject/Plugins/TouchInterfaceDesigner/Intermediate/Build/Linux/x64/UnrealEditor/Development/VirtualShapeDesigner/Module.VirtualShapeDesigner.cpp:14:
/home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner/HostProject/Plugins/TouchInterfaceDesigner/Source/VirtualShapeDesigner/Private/Viewport/SVirtualShapeDesignerDrawer.cpp:182:23: warning: 'ToPaintGeometry' is deprecated: Use FPaintGeometry ToPaintGeometry(const FVector2f& InLocalSize, const FSlateLayoutTransform& InLayoutTransform) instead. Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile. [-Wdeprecated-declarations]
                                        AllottedGeometry.ToPaintGeometry(Dot.Location - FVector2D(EditorSettings->ShapeDotSize * 0.5f), FVector2D(EditorSettings->ShapeDotSize)),
                                                         ^
/home/luisc/DATA/Descargas/Linux_Unreal_Engine_5.2/Engine/Source/Runtime/SlateCore/Public/Layout/Geometry.h:370:2: note: 'ToPaintGeometry' has been explicitly marked deprecated here
        UE_DEPRECATED(5.2, "Use FPaintGeometry ToPaintGeometry(const FVector2f& InLocalSize, const FSlateLayoutTransform& InLayoutTransform) instead.")
        ^
/home/luisc/DATA/Descargas/Linux_Unreal_Engine_5.2/Engine/Source/Runtime/Core/Public/Misc/CoreMiscDefines.h:259:43: note: expanded from macro 'UE_DEPRECATED'
#define UE_DEPRECATED(Version, Message) [[deprecated(Message " Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile.")]]
                                          ^
In file included from /home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner/HostProject/Plugins/TouchInterfaceDesigner/Intermediate/Build/Linux/x64/UnrealEditor/Development/VirtualShapeDesigner/Module.VirtualShapeDesigner.cpp:14:
/home/luisc/Documentos/pluginsExport/TouchInterfaceDesigner/HostProject/Plugins/TouchInterfaceDesigner/Source/VirtualShapeDesigner/Private/Viewport/SVirtualShapeDesignerDrawer.cpp:199:22: warning: 'ToPaintGeometry' is deprecated: Use FPaintGeometry ToPaintGeometry(const FVector2f& InLocalSize, const FSlateLayoutTransform& InLayoutTransform) instead. Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile. [-Wdeprecated-declarations]
                                AllottedGeometry.ToPaintGeometry(Location - FVector2D(EditorSettings->ShapeDotSize * 0.5f), FVector2D(EditorSettings->ShapeDotSize)),
                                                 ^
/home/luisc/DATA/Descargas/Linux_Unreal_Engine_5.2/Engine/Source/Runtime/SlateCore/Public/Layout/Geometry.h:370:2: note: 'ToPaintGeometry' has been explicitly marked deprecated here
        UE_DEPRECATED(5.2, "Use FPaintGeometry ToPaintGeometry(const FVector2f& InLocalSize, const FSlateLayoutTransform& InLayoutTransform) instead.")
        ^
/home/luisc/DATA/Descargas/Linux_Unreal_Engine_5.2/Engine/Source/Runtime/Core/Public/Misc/CoreMiscDefines.h:259:43: note: expanded from macro 'UE_DEPRECATED'
#define UE_DEPRECATED(Version, Message) [[deprecated(Message " Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile.")]]
                                          ^
2 warnings generated.
[10/11] Link (lld) libUnrealEditor-VirtualShapeDesigner.so cancelled
[11/11] WriteMetadata UnrealEditor.target cancelled
Took 192,1717533s to run dotnet, ExitCode=6
UnrealBuildTool failed. See log for more details. (/home/luisc/Library/Logs/Unreal Engine/LocalBuildLogs/UBT-UnrealEditor-Linux-Development.txt)
AutomationTool executed for 0h 3m 21s
AutomationTool exiting with ExitCode=6 (6)
RunUAT ERROR: AutomationTool was unable to run successfully. Exited with code: 6

Hi @Luis_Eduardo

Sorry for the late reply, Iā€™m on vacation until August 10. Iā€™ll be able to help you better then.

The latest update corrects the warnings regarding depreciation on 5.2.

I compiled the plugin for linux and had no particular problems. As soon as Iā€™m back from vacation, Iā€™ll test it on linux to reproduce the errors you encountered.

Hello, Thanks for your response. I figured it out my self and edited the code and solved the errors hehe. I did not want to get my hands dirty on your code but it was a simple fix. However, I still did not fix the deprecation warnings, but since they are just warnings I was able to compile the plugin for Linux.

Hello. Please help me how to put this plugin on HUD. It does not work when the HUD is on. Does Zoder work?

Hi @ADTCREATIVE

What do you mean by HUD ? The User interface (widget) or the HUD class ?

Zorder of touch interface is fixed to -99
https://www.touchinterfacedesigner.lostingamestudio.com/docs/8-cohabitation-with-umg-widget/