Unity upgrade help

karum

New member
For the longest time I kept my project at 2020.3 LTS. But recently it has become necessary to upgrade to 2022.
I managed to solve all issues, except for opsive inventory system (i dont use any other opsive plugins), where I hit multiple issues that are simply beyond my understanding.
I initially fixed the compile errors at least (i think by adjusting the assembly definition and deleting some input classes and also uninstalling the inputsystem), but recently noticed that still none of the opsive menus were working anymore, so I tried to upgrade to the latest version and it brought back the issues I fixed initially.
I'd like to fix this properly, for good, so I need to ask for help.
Currently, I get these three errors:

Packages\com.opsive.shared\Runtime\Input\InputSystem\UnityInputSystem.cs(19,57): error CS0234: The type or namespace name 'PlayerInput' does not exist in the namespace 'Opsive.Shared.Input' (are you missing an assembly reference?)

Assets\Opsive\Shared\Editor\Inspectors\Input\UnityInputSystemInspector.cs(9,31): error CS0234: The type or namespace name 'InputSystem' does not exist in the namespace 'Opsive.Shared.Input' (are you missing an assembly reference?)

Assets\Opsive\Shared\Editor\Inspectors\Input\UnityInputSystemInspector.cs(15,26): error CS0246: The type or namespace name 'UnityInputSystem' could not be found (are you missing a using directive or an assembly reference?)

My inventory system is at the most recent version. How do I fix this?
 
Would it be possible for you to install the UnityInputSystem package? That would most likely get rid of the issues.
That being said I'm surprised you have those errors in theory we have compilation symbols that should prevent this.

If you still have issues despite having installed UnityInputSystem then it might be a Assembly definition reference issue where Unity changed the guid of their assembly definitions for UnityInputSystem package in newer version. If that's the case finding the Opsive AssemblyDefinition and referencing the UnityInputSystem assembly definition should fix the issue
 
Ok, update:

Input sytem is installed (V1.7.0)

Opsive.Shared.asmdef contains a link to Unity.InputSystem

Same errors persist.
 
It doesn't sound like you are running the latest version of inventory. As of the latest version the Unity Input System integration is included in the shared part of the asset. Can you do a sanity check and try it in a new project?
 
Afaik it is the latest version. It works in a new project.
I want to underline this: I am years into development and have done a lot of developing.
I haven't made any changes to the UIS, but I also cannot lose the progress I have made so far.
I really need help debugging what the problem is here (and a clean start is not it).
 
Last edited:
There is definitely something specific in your project that is preventing the UnityInputSystem classes from being found. Cna you verify the files exist within Packages\com.opsive.shared\Runtime\Input\InputSystem?

If they do exist then this is something project specific and I'm not able to determine what it is without looking at it. This is the perfect use case for our paid consulting services - if you're interested in that please send an email to support@opsive.com and we can set something up.
 
There is definitely something specific in your project that is preventing the UnityInputSystem classes from being found. Cna you verify the files exist within Packages\com.opsive.shared\Runtime\Input\InputSystem?
Which files? The files from the error messages? They are there.
 
Last edited:
And PlayerInput/IPlayerInput/PlayerInputProxy exists within com.opsive.shared\Runtime\Input?
 
I managed to fix the error. I can see why this would happen to anyone that tries to update Opsive UIS.
I usually feel compelled to share progress with a community, but considering in cases like this your only contricution is to try and sell consulting hours I don't want to interrupt your business.
 
Back
Top