Search Unity

Multi-Input: Handle many keyboards, mice, and pads all at once!

Discussion in 'Assets and Asset Store' started by ravingbots, Apr 9, 2016.

  1. ravingbots

    ravingbots

    Joined:
    Aug 20, 2015
    Posts:
    44
    Multi-Input is an extension library that adds support for multiple keyboards and mice attached to a desktop at the same time. It is an original idea that will bring to your local co-op and split-screen games a whole new range of possibilities. The package comes with code samples, an example of a split-screen game, and documentation.


     
    Last edited: Nov 23, 2016
    mgear likes this.
  2. ravingbots

    ravingbots

    Joined:
    Aug 20, 2015
    Posts:
    44
    The package has been upgraded. Now, it supports Linux and includes an example of a game - Bunnihilation (demo):
    • a prototype of a split-screen shooter
    • planets, comets, and rabbits
    • key binding configuration
    • a complete project with source code
     
  3. ravingbots

    ravingbots

    Joined:
    Aug 20, 2015
    Posts:
    44
  4. ravingbots

    ravingbots

    Joined:
    Aug 20, 2015
    Posts:
    44
    Multi-Input now supports Windows, Mac OSX, and Linux!
     
  5. chrisMary

    chrisMary

    Joined:
    Nov 27, 2013
    Posts:
    16
    Hi !
    Looks nice !
    I've done some projects where I had to use some combination of GlovePIE and PPJoy...
    I was wondering if your plug permits to access PID, VID or any other unique ID of the mice to identify them and save the preset ?
    This has been my blocking point so far, I had to reassign mice every time... Wich I don't want because they are assigned to a specific area of the game and hardware is set in a specific way.
    Also, how many mice can you detect ? I need 9...
    If this is possible, I'll buy it right away :)
     
  6. ravingbots

    ravingbots

    Joined:
    Aug 20, 2015
    Posts:
    44
    Hello :) currently, we don't expose any device identifiers, but we'll look into it for the next release. There's no upper limit on the number of devices imposed by the library itself, so 9 mice should be just fine, as long as the OS handles them correctly.
     
  7. juan-jo

    juan-jo

    Joined:
    May 15, 2010
    Posts:
    162
    Hi.
    I already bought it, but I also need this.
    It is for use in a public installation, and the trackballs (4) have to boot already allocated, we can not let the user do it.

    Is there any chance that this will be incorporated in less than a month?
    It is the start date of the product.
     
  8. ravingbots

    ravingbots

    Joined:
    Aug 20, 2015
    Posts:
    44
    Hello,
    Recently, we've added access to PID/VID. The update will be published by the end of this month. Please send us email with Invoice Number to get the update earlier: contact@ravingbots.com
     
  9. juan-jo

    juan-jo

    Joined:
    May 15, 2010
    Posts:
    162
    Thanks! I will do so.

    I have another question:


    I'm making a game for a custom built console, based on a Mac with 4 trackballs.
    Trackballs will work like mice.
    At the moment I'm working with a mouse and a trackpad.
    I'm starting from the example scene 'Multi-Input Example' and I think I'm understanding it.

    In this example, when a mouse is detected, it always tries to pair it with a keyboard.
    I only have one keyboard, and it will also be like that in the final product, so I've removed that requirement.

    I think it should work, and both devices are assigned correctly, but in the case of the trackpad it does not seem to read anything when querying device in MIDemoPawnController.

    I've tried adding the MouseX, PadDPadX, PadX axes (in addition to the existing MouseXLeft and MouseXRight) and it seems to work for the mouse, but not for the trackpad.

    Perhaps for the trackpad should use some other axis, maybe not considered yet?
     
    Last edited: Mar 8, 2017
  10. ravingbots

    ravingbots

    Joined:
    Aug 20, 2015
    Posts:
    44
    Hi,
    We are examining the described problem. We've received your email so we will use it to send you a solution.
     
  11. ravingbots

    ravingbots

    Joined:
    Aug 20, 2015
    Posts:
    44
    Hi, we'd like to share with you some information about the development of Multi-Input. Currently, the library is programmer-friendly, but we aim to make it easy-to-use for game designers too. We are working on a visual tool that lets you build input scheme by connecting blocks in the editor. Below is an early screen of the developed system. Of course, it's work-in-progress, so the blocks still look ugly ;)



    The picture illustrates many profiles, which can have exclusive or shared axes/buttons/keys. Two button inputs can be combined to simulate a stick. All inputs are passed to action blocks (e.g., move, jump), which can be accessed from code, or they can invoke events. An event block simply calls a method in a MonoBehavior. The right tab will show the properties of a selected block.

    We hope you like the idea. Please let us know if you have any questions or want to share your comments. New pictures soon :)
     
    Nottingham1stBlood and juan-jo like this.
  12. ravingbots

    ravingbots

    Joined:
    Aug 20, 2015
    Posts:
    44
    We've just submitted version 0.12b to the store. The update adds new device identification properties and fixes the "failed to get the size for UTF-8 buffer" exception on Windows. It should take 5 to 10 business days for Unity staff to make it live. If you already purchased the package and can't wait, then please contact our support and attach the invoice number to get the newest version immediately :)

    //edit:

    The update is already live.
     
    Last edited: Mar 22, 2017
    juan-jo likes this.
  13. DigitalAdam

    DigitalAdam

    Joined:
    Jul 18, 2007
    Posts:
    1,204
    I'm trying to make a split screen game in which we both can use Xbox 360 controllers. Trying to find tutorials on how to do that is a pain. Will your asset be a simple solution?

    Right now I'm just using Unity's Standard Assets > FPSControllers for both players, and the mouse/keyboard that's setup as the default moves both players. Will your asset also help with that?

    Thanks.
     
  14. ravingbots

    ravingbots

    Joined:
    Aug 20, 2015
    Posts:
    44
    The package includes Bunnihilation, which is a simple FPS game that serves as an example of using Multi-Input for controlling the players in a split-screen mode. Multi-Input supports all Xbox controllers (360 and One). Standard Unity Input won't let you use two mice (or keyboards) independently.
     
  15. DigitalAdam

    DigitalAdam

    Joined:
    Jul 18, 2007
    Posts:
    1,204
    Great, I'l pick this up then.
     
  16. TwoBentCoppers

    TwoBentCoppers

    Joined:
    Feb 12, 2017
    Posts:
    16
    This has been a great solution for my edutainment project. One of the major design points is to allow a primary (college student/adult) user to cooperate with a secondary (child) user. Since the target population is expected to have low technology literacy, having a system that "just works" is ideal. If the adults can just plug in an extra keyboard and mouse, and have it just magically work, that is wonderful. That way they don't have to enter the world of PC Game Pads if they don't know it. No messing with XInput vs DirectInput, no 3rd party drivers and workaround hacks (on their end), just plug in and go.

    When I tested Bunnihilation, I was very impressed at how easily I was able to just keep adding on USB K&M combos. Even adding some Bluetooth ones.

    I'm now bringing myself up to speed on the library's functions and doing more testing. It is really nice that Multi-Input picks up any HID registered device, even virtual ones. Which means apps that make a smartphone connect as Mouse or Keyboard are also usable... assuming they get counted as a HID. For example the Remote Link / ASUS Smart Gesture (Mobile Control) for Android makes a "VirtualHidTest" device, and is perfectly usable with Multi-Input.

    I also have reasons to do something similar to what juan-jo did. Using 1 keyboard and 2 mice. Split the Keyboard between two Players, and each getting a mouse. Or a 1 keyboard, 1 mouse, 1 touch-pad in the case of laptops.

    Although on the subject of DirectInput devices, what is the timeline for Multi-Input to support them? I know they're on the the "Future Plans" list. I do already have a backup plan for dealing with them in my current project, but it would be nice to work with them under one API.
     
  17. Rockwall33

    Rockwall33

    Joined:
    Mar 4, 2016
    Posts:
    186
    Hi!

    I am making a multiplayer 1st person arena fps with Forge networking.

    on top of not being lan and having dedicated servers, I want to try adding splitscreen multiplayer to my game.

    Would it work cross platform? Like steam to console? or pc to mac, etc?

    Now I would be using 4 xbox controllers, if I were to use this and add my spawn/server disconnection code would it work with this asset?


    Thank you!
    XaloX
     
  18. ravingbots

    ravingbots

    Joined:
    Aug 20, 2015
    Posts:
    44
    We're wrapping up a large project we've been busy with for the past several months (which also used DirectInput), so likely soon, but we can't promise any concrete dates.

    The library currently supports only Windows, Linux and macOS, so it will not run on consoles. Beyond that we only expose devices and their state, how you use that information is entirely up to you, and you shouldn't have any trouble using it alongside any networking solution.
     
    Rockwall33 likes this.
  19. Rockwall33

    Rockwall33

    Joined:
    Mar 4, 2016
    Posts:
    186
    Thank you!! :D
     
  20. slightlygrim

    slightlygrim

    Joined:
    Jul 10, 2017
    Posts:
    13
    Hi guys

    Thanks for making the asset. I purchased it recently and really struggling to get my head around it. The documentation isn't very clear. any chance I can get some assistants, I would just like to read 2 mice inputs.

    Thanks
     
  21. Wang7341Peng

    Wang7341Peng

    Joined:
    Oct 12, 2016
    Posts:
    1
    Hello, how does it distinguish Joy Num? We have multiple joysticks, how to separate them easily.
     
  22. loganolson-dd

    loganolson-dd

    Joined:
    Sep 14, 2017
    Posts:
    4
    Hey there, does the asset have any thing equivalent to Unity's Input.inputString? I'd like to have two keyboards controlling two text input fields simultaneously. Thanks!
     
  23. ravingbots

    ravingbots

    Joined:
    Aug 20, 2015
    Posts:
    44
    You need to find the device objects in the InputState.Devices list (you should ask player to press a button or move the mouse they're interested in, because it's not really possible to determine whether the device is a mouse or not otherwise - see the demos), and then just query device[InputCode.MouseX] etc.

    Every device has its own device object in the InputState.Devices list. Querying axes on a specific device object returns only the inputs from that specific device.

    No, sorry. Supporting this correctly requires the library to understand keyboard layouts, and that is a quite a bit of work. It might be added in the future, but is not a high priority.

    If you don't mind only supporting US International-compatible layouts, you can try something like this (note that this implements only the very basic text editing controls, lacks cursor display, etc; if you want to use InputField you'll have to make sure Unity's input system is not adding chars on its own):
    Code (CSharp):
    1. using System.Collections.Generic;
    2. using System.Text;
    3. using RavingBots.MultiInput;
    4. using UnityEngine;
    5. using UnityEngine.UI;
    6.  
    7. public class SimpleTextEditor : MonoBehaviour
    8. {
    9.     private struct Char
    10.     {
    11.         public readonly char NonShifted;
    12.         public readonly char Shifted;
    13.  
    14.         public Char(char nonShifted, char shifted)
    15.         {
    16.             NonShifted = nonShifted;
    17.             Shifted = shifted;
    18.         }
    19.     }
    20.  
    21.     // this is the main layout dependent part
    22.     private readonly Dictionary<InputCode, Char> _chars = new Dictionary<InputCode, Char>
    23.     {
    24.         {InputCode.Key0, new Char('0', ')')},
    25.         {InputCode.Key1, new Char('1', '!')},
    26.         {InputCode.KeyA, new Char('a', 'A')},
    27.         {InputCode.KeyB, new Char('b', 'B')},
    28.         {InputCode.KeySpace, new Char(' ', ' ')}
    29.         // ...
    30.     };
    31.  
    32.     private Text _text;
    33.     private StringBuilder _buffer;
    34.     private int _cursor;
    35.  
    36.     public IDevice Device { get; set; }
    37.  
    38.     private void Awake()
    39.     {
    40.         _text = GetComponent<Text>();
    41.         _buffer = new StringBuilder();
    42.         _cursor = 0;
    43.     }
    44.  
    45.     private void Update()
    46.     {
    47.         if (Device == null)
    48.         {
    49.             return;
    50.         }
    51.  
    52.         var modified = HandleCursor() || HandleChars();
    53.         if (modified)
    54.         {
    55.             _text.text = _buffer.ToString();
    56.         }
    57.     }
    58.  
    59.     private bool HandleCursor()
    60.     {
    61.         var left = Device[InputCode.KeyLeftArrow];
    62.         var right = Device[InputCode.KeyRightArrow];
    63.         var backspace = Device[InputCode.KeyBackspace];
    64.         var delete = Device[InputCode.KeyDelete];
    65.  
    66.         if (left.IsDown)
    67.         {
    68.             MoveCursor(_cursor - 1);
    69.             return true;
    70.         }
    71.  
    72.         if (right.IsDown)
    73.         {
    74.             MoveCursor(_cursor + 1);
    75.             return true;
    76.         }
    77.  
    78.         if (backspace.IsDown && _cursor > 0)
    79.         {
    80.             _buffer.Remove(_cursor - 1, 1);
    81.             MoveCursor(_cursor - 1);
    82.             return true;
    83.         }
    84.  
    85.         if (delete.IsDown)
    86.         {
    87.             _buffer.Remove(_cursor, 1);
    88.             MoveCursor(_cursor);
    89.             return true;
    90.         }
    91.  
    92.         return false;
    93.     }
    94.  
    95.     private void MoveCursor(int position)
    96.     {
    97.         _cursor = Mathf.Clamp(position, 0, _buffer.Length);
    98.     }
    99.  
    100.     private bool HandleChars()
    101.     {
    102.         var lshift = Device[InputCode.KeyLeftShift];
    103.         var rshift = Device[InputCode.KeyRightShift];
    104.         var shifted = lshift.IsHeld || rshift.IsHeld;
    105.  
    106.         foreach (var pair in _chars)
    107.         {
    108.             if (Device[pair.Key].IsDown)
    109.             {
    110.                 var ch = shifted ? pair.Value.Shifted : pair.Value.NonShifted;
    111.                 _buffer.Insert(_cursor, ch);
    112.                 _cursor++;
    113.                 return true;
    114.             }
    115.         }
    116.  
    117.         return false;
    118.     }
    119. }
    120.  
     
  24. am_jooz

    am_jooz

    Joined:
    Jun 12, 2018
    Posts:
    7
    Hi,
    For any reason, we cannot make the asset work with any logitech wheel. We tried with a G290 and also an older Logitech model. None of them is recognized. No problem with other non-logitech devices.
    The Logitech wheels are working, we are able to test it from other mapping tools.
    Windows 10 / last drivers updated from Logitech.
    Any idea if we need to install additional for those wheels ?
    Thanks for your help !
     
  25. MI_Pixel

    MI_Pixel

    Joined:
    Feb 1, 2015
    Posts:
    1
    Hi,
    I am just wanting to simple assign the attached mice as controllers to the existing player game objects. I am struggling though as I cannot seem to find much documentation for, what I would assume, a simple process with your package. The attached example as several scripts attached but I am afraid that isn't really helping much.

    Any chance someone could lend a hand, I just want a simple script that assigns multiple mouse control (X, Y movement) to existing game objects. That is all (and yes, I have purchased this package).

    Kind Regards and thanks in advance.

    Michael "Retz Retro" Ingram
     
  26. ravingbots

    ravingbots

    Joined:
    Aug 20, 2015
    Posts:
    44
    Device assignment has basically three components: listening on input you care about on all the device objects, tracking which devices you've already assigned, and passing the device object to a controller that actually uses the input. Supporting disconnecting and reconnecting devices requires more, but to start with you can just ignore that aspect.

    Basic template for assignment looks like this:

    Code (CSharp):
    1. public sealed class DeviceAssignment : MonoBehaviour
    2. {
    3.     // create an array of InputCodes that correspond to input you listen on to assign devices
    4.     // I recommend not listening to mouse movements for this so that assignment is not accidental
    5.     // for mice the best way to signal the player wants to use it is by clicking
    6.     private static readonly InputCode[] InterestingAxes =
    7.     {
    8.         InputCode.MouseLeft,
    9.         InputCode.MouseRight,
    10.         InputCode.MouseMiddle,
    11.         InputCode.MouseFourth,
    12.         InputCode.MouseFifth,
    13.     };
    14.  
    15.     private HashSet<long> _usedDevices = new HashSet<long>();
    16.     private int _currentController;
    17.  
    18.     // assign from the editor
    19.     public ObjectController[] Controllers;
    20.  
    21.     private void Awake()
    22.     {
    23.         _inputState = FindObjectOfType<InputState>();
    24.     }
    25.  
    26.     private void Update()
    27.     {
    28.         if (_currentController >= Controllers.Length)
    29.         {
    30.             // no more controllers to assign to
    31.             return;
    32.         }
    33.  
    34.         foreach (var device in _inputState.Devices)
    35.         {
    36.             if (_usedDevices.Contains(device.Id))
    37.             {
    38.                 // already assigned, ignore (it's now the controller's responsibility)
    39.                 continue;
    40.             }
    41.  
    42.             foreach (var axis in InterestingAxes)
    43.             {
    44.                 if (device[axis] != null && device[axis].IsDown)
    45.                 {
    46.                     var controller = _currentController++;
    47.                     Controllers[controller].Device = device; // assign the device
    48.                     _usedDevices.Add(device.Id); // mark the device as used
    49.  
    50.                     return;
    51.                 }
    52.             }
    53.         }
    54.     }
    55. }
    while a controller that just moves the object with the mouse would look something like this:

    Code (CSharp):
    1. public sealed class ObjectController : MonoBehaviour
    2. {
    3.     public IDevice Device { get; set; }
    4.  
    5.     private void Update()
    6.     {
    7.         if (Device == null)
    8.         {
    9.             // no device assigned yet
    10.             return;
    11.         }
    12.  
    13.         // move the object
    14.         var dx = Device[InputCode.MouseX].Value;
    15.         var dy = Device[InputCode.MouseY].Value;
    16.         var speed = 1f;
    17.  
    18.         var translation = new Vector3(dx, dy, 0) * speed * Time.deltaTime;
    19.         transform.position += translation;
    20.     }
    21. }
    Note that mouse input can misbehave in the editor, it's best to test it in the standalone player.
     
  27. Quiet-Pixel

    Quiet-Pixel

    Joined:
    Aug 23, 2013
    Posts:
    48
    I have your "Multi-Input Example" scene working in the Editor with 2 trackballs, but when I publish an OSX App on my Mac, the app is not able to see any devices (including keyboards or mice).

    I have downloaded your Bunnihilation demo App and run it. It sees all of my devices including the trackballs.

    Is there something special I need to do when building an OSX Mac App?

    (using Unity 2018.2.13f1 on OSX 10.13.6 (High Sierra))
     
    Last edited: Oct 26, 2018
  28. Quiet-Pixel

    Quiet-Pixel

    Joined:
    Aug 23, 2013
    Posts:
    48
    Waited a week, and had to write the developer via e-mail found on their website.

    They suggested making sure that the rb-minput.bundle had the x64 checkbox checked in the input settings. It was properly set. I checked the Player.log file for the app, and it repeatedly showed that it was not able to find the bundle.

    After digging around in the Contents of the published app, I found that copying the bundle file up from the /Contents/Plugins/x86_64 directory to the /Contents/Plugins directory allowed the manually modified app to run correctly.

    The fix in Unity is to move that file from /Assets/Plugins/x86_64 up to /Assets/Plugins. If the bundle is already loaded in the editor, this will not take place right away. I had to uncheck the "x64" box and apply the changes, close Unity editor, reopen it, and check the "x64" box then apply the changes. After this the example scene, and my own code, now publishes correctly working standalone apps on Mac.
     
    playfulsystems and juan-jo like this.
  29. cmyd

    cmyd

    Joined:
    Oct 29, 2017
    Posts:
    98
    Hello, I just purchased your API, I'm having a real hard time implementing it, The docs are wage and the example doesn't say much, Can you please make a video tutorial showing how to implement API?
     
  30. KabezaGGJ

    KabezaGGJ

    Joined:
    Jan 26, 2019
    Posts:
    3
    I have a doubt, Can it handle multiple touchscreen inputs?
     
  31. ravingbots

    ravingbots

    Joined:
    Aug 20, 2015
    Posts:
    44
    Sorry for a long reply. Touch screens are not supported yet.
     
  32. cmyd

    cmyd

    Joined:
    Oct 29, 2017
    Posts:
    98
    Hi, I bought your API a while back, I'm using EMS TOP GUN as mouse(https://www.play-asia.com/ems-topgun-iii/13/704e7s), your API is not detecting these gun, even when in the tutorials you gave, the game ask for us to press any mouse button, it works fine on mouse but when I use this gun or other guns(I have other versions too) the game doesn't detect them.
     
  33. PiotrRavingBots

    PiotrRavingBots

    Joined:
    Sep 19, 2018
    Posts:
    7
    If it's not showing up, then it's not supported, sorry. Devices that pretend to be mice must be HID-compatible and properly register themselves as named mice in the system (and not do anything like use software to emulate clicks and movements). You can try setting log verbosity to debug and see if the device is mentioned anywhere in the logs, but it's likely this driver simply doesn't do something we require.
     
  34. cmyd

    cmyd

    Joined:
    Oct 29, 2017
    Posts:
    98
    The EMS top gun's dongle do show up as Mouse, Device manager list it as mouse but your API doesn't, anyway I forced your API too pick it as mouse and assigned to a player, but as you said the API doesn't register X,Y position or clicks, Is there anything you can tell me? I can be another API or anything, Maybe a light gun that you know I can use, I really need to fix this problem.
     
    Last edited: May 13, 2019
  35. PiotrRavingBots

    PiotrRavingBots

    Joined:
    Sep 19, 2018
    Posts:
    7
    I'm afraid I don't have any ideas. Unfortunately we don't have a lot of resources available, and that severely limits the number of odd devices we're able to support (if this device is even possible to support with how the library works).
     
  36. mgear

    mgear

    Joined:
    Aug 3, 2010
    Posts:
    9,411
    tried with old wii balance board (bluetooth), didnt seem to find it in the device list (in demo scene),
    is there some way to connect manually?
     
  37. clausiusreis

    clausiusreis

    Joined:
    Sep 14, 2016
    Posts:
    4
    Is there a way to define the axis of the mouses in multi-input? I want to place 4 player in opposite sides of the screen (table), with each mouse movement oriented to the player seat position.
     
  38. PiotrRavingBots

    PiotrRavingBots

    Joined:
    Sep 19, 2018
    Posts:
    7
    No, if the device is not showing up then it's currently not supported.

    The library reports relative mouse movements in the device coordinate system. How you use them is up to you. You should be able to do this by putting both coordinates in a vector and transforming it to the object's local coordinates.
     
  39. Minjick

    Minjick

    Joined:
    Sep 19, 2019
    Posts:
    1
    Hi. I like your Asset!

    I want to matching 4 of the keyboard - inputField.
    How can I use lnternal or location data?
    Thanks.
     
  40. kilik128

    kilik128

    Joined:
    Jul 15, 2013
    Posts:
    909
    anyone tested on 2019 ?
     
  41. cmyd

    cmyd

    Joined:
    Oct 29, 2017
    Posts:
    98
    Woks fine, what exactly are you hoping it will do? This API has some limitations and the documentation are not very clear.
     
  42. cmyd

    cmyd

    Joined:
    Oct 29, 2017
    Posts:
    98
    What does that mean?
     
  43. kilik128

    kilik128

    Joined:
    Jul 15, 2013
    Posts:
    909
    i hope for multiscreen mouse game 4 player
    the must have it's maybie limitations force one mouse by screen can be very cool
     
  44. cmyd

    cmyd

    Joined:
    Oct 29, 2017
    Posts:
    98
    It will do that.
     
  45. joice_li

    joice_li

    Joined:
    Sep 27, 2019
    Posts:
    4
    Hi, PiotrRavingBots, just wondering if you will add support for multi- touchscreen?
     
    Last edited: Oct 15, 2019
  46. playfulsystems

    playfulsystems

    Joined:
    May 14, 2015
    Posts:
    2
    I've been working on a project using this plugin. I just updated to macOS Catalina. All projects using it now crash. Could this be looked into?
     
  47. PiotrRavingBots

    PiotrRavingBots

    Joined:
    Sep 19, 2018
    Posts:
    7
    Note about macOS support: it seems that due to system changes Apple made in Catalina, Multi-Input can no longer run properly inside the Unity editor, with no possible solutions. Standalone builds should work fine provided you sign and notarize them properly, but they will require granting the game the "input monitoring" permission (it's now needed to use HIDManager API which is also the only way to implement Multi-Input functionality on macOS).
     
  48. juan-jo

    juan-jo

    Joined:
    May 15, 2010
    Posts:
    162
    Sad news because I work on Mac, and for me Multi-Input is working better in Mac than Win.
    Seems I won't be able to get rid of those PCs…

    Of course you have verified that it is not resolved by giving that permission to Unity…
     
  49. PiotrRavingBots

    PiotrRavingBots

    Joined:
    Sep 19, 2018
    Posts:
    7
    Unfortunately the OS simply ignores the requests made by the library regardless of whether it's signed or not, and giving the permission to Unity itself doesn't help. If there is a workaround or solution, I can't find it. At the moment I'd recommend not updating your development workstations to Catalina.
     
  50. Marvbr

    Marvbr

    Joined:
    Jul 2, 2017
    Posts:
    3
    I need to use 4 trackball mouse in a project, using this asset can I get the X and Y for each device? Thanks.