View Issue Details

IDProjectCategoryView StatusLast Update
0004758NoesisGUIUnitypublic2026-03-23 12:36
ReporterXaron Assigned Tojsantos  
PrioritynormalSeverityfeature 
Status feedbackResolutionreopened 
Product Version3.2.10 
Target Version3.2.13 
Summary0004758: Multi Display Support
Description

Dear Noesis team,

it would be great to have multi monitor support. The discussion was started here so please check that thread for some details: https://www.noesisengine.com/forums/viewtopic.php?t=1449

Tl;dr:

For Unity multi monitor support means that each display has its own camera. Two cameras each set to a different Display. Our request would be that each has a NoesisView component attached with a simple XAML with a button. Both buttons should be clickable and should highlight when mousing over.

Thank you!
It looks to me like the position sensing logic that picks up what the mouse is over is not sensitive to the Screen/Display.

PlatformAny

Activities

jsantos

jsantos

2026-03-02 14:37

manager   ~0011978

The following patch should fix this issue. Could you please try it out?

NoesisView.cs.patch (892 bytes)   
Index: NoesisView.cs
===================================================================
--- NoesisView.cs	(revision 16730)
+++ NoesisView.cs	(working copy)
@@ -1319,10 +1319,6 @@
     {
       #if ENABLE_LEGACY_INPUT_MANAGER
         Vector3 mousePosition = UnityEngine.Input.mousePosition;
-      #else
-        Vector3 mousePosition = UnityEngine.InputSystem.Mouse.current.position.ReadValue();
-      #endif
-
         Vector3 p = Display.RelativeMouseAt(mousePosition);
 
         if (p == Vector3.zero)
@@ -1332,6 +1328,11 @@
 
         _activeDisplay = (int)p.z;
         return p;
+      #else
+        Vector3 mousePosition = UnityEngine.InputSystem.Mouse.current.position.ReadValue();
+        _activeDisplay = UnityEngine.InputSystem.Mouse.current.displayIndex.value;
+        return mousePosition;
+      #endif
     }
 
     private void UpdateMouse()
NoesisView.cs.patch (892 bytes)   
jsantos

jsantos

2026-03-02 14:38

manager   ~0011979

The implementation of MousePosition should be like this:

    private Vector3 MousePosition()
    {
      #if ENABLE_LEGACY_INPUT_MANAGER
        Vector3 mousePosition = UnityEngine.Input.mousePosition;
        Vector3 p = Display.RelativeMouseAt(mousePosition);

        if (p == Vector3.zero)
        {
            return mousePosition;
        }

        _activeDisplay = (int)p.z;
        return p;
      #else
        Vector3 mousePosition = UnityEngine.InputSystem.Mouse.current.position.ReadValue();
        _activeDisplay = UnityEngine.InputSystem.Mouse.current.displayIndex.value;
        return mousePosition;
      #endif
    }
Xaron

Xaron

2026-03-18 22:07

reporter   ~0012062

Last edited: 2026-03-18 22:13

Hi and sorry for the late feedback.

We did some first tests and it looks promising. But so far it only seems to work in standalone builds which makes it a bit tricky to use for development.

The mouse z is the index of the screen and that doesn't work in the editor.

If you open a second game screen in Unity and set that one to Display 2 the mouse display index (z) will still return Display 1 the entire time.

This would be probably helpful to be added or used to get the right one in editor mode: https://docs.unity3d.com/6000.3/Documentation/ScriptReference/Display-activeEditorGameViewTarget.html

jsantos

jsantos

2026-03-23 12:36

manager   ~0012086

The main issue we have in the editor is that OnGUI is not invoked on secondary displays. The proper solution would be to deprecate OnGUI entirely. This is something we’re considering for Noesis 4.0, but I can provide you with a preview in 3.2 (disabled by default) so you can try it out.

Issue History

Date Modified Username Field Change
2026-01-30 15:11 Xaron New Issue
2026-02-05 16:34 jsantos Assigned To => jsantos
2026-02-05 16:34 jsantos Status new => assigned
2026-02-05 16:34 jsantos Target Version => 3.2.12
2026-03-02 14:37 jsantos Note Added: 0011978
2026-03-02 14:37 jsantos File Added: NoesisView.cs.patch
2026-03-02 14:37 jsantos Status assigned => feedback
2026-03-02 14:38 jsantos Note Added: 0011979
2026-03-03 12:50 jsantos Status feedback => resolved
2026-03-03 12:50 jsantos Resolution open => fixed
2026-03-03 12:50 jsantos Fixed in Version => 3.2.12
2026-03-18 22:07 Xaron Status resolved => feedback
2026-03-18 22:07 Xaron Resolution fixed => reopened
2026-03-18 22:07 Xaron Note Added: 0012062
2026-03-18 22:13 Xaron Note Edited: 0012062
2026-03-23 12:32 jsantos Fixed in Version 3.2.12 =>
2026-03-23 12:32 jsantos Target Version 3.2.12 => 3.2.13
2026-03-23 12:36 jsantos Note Added: 0012086