Unity 6 Cinemachine (InputAxisController) Properties not showing (or i can't find it)

Hello, my game is a WebGL game and I am using a Joystick package which I can activate and deactivate on the screen according to the device information I get from the SDK.

For some reason I upgraded my project to Unity 6 and I see that Cinemachine has been changed. It has changed a lot. I had to change almost all the features related to Cinemachine in my project, but I have a problem that I can’t overcome at the moment.

The problem is that the InputAxisController doesn’t have the LegacyInput property mentioned in Cinemachine Manual from Unity for my purpose.

My goal is to be able to control the rotation of the camera with the camera joystick if the game is played on a mobile device, so I need to remove Cinemachine’s Input Axis nomenclature. This worked great in the previous Cinemachine version, but like I said, everything seems to have changed now.

In Unity’s documentation for the new cinemachine properties I can’t find the path indicated as Legacy Input. Also can you tell me what I need to do according to my purpose in my code below?

Hi there,

I looked for what you’re asking in the Cinemachine Scripting API, and it seems the properties you’re looking for are not accessed from CinemachineInputAxisController itself, but from CinemachineInputAxisController.Reader :

https://docs.unity3d.com/Packages/com.unity.cinemachine@3.1/api/Unity.Cinemachine.CinemachineInputAxisController.Reader.html

Does that help?

There also seems to be a CinemachineInputAxisController.Controller, I found it in the Visual Studio’s intellisense suggestions, but I couldn’t find the documentation for that one.

Hi, I solved the problem myself. The problem is that Cinemachine has been changed with Unity 6 and the component now only works on an object named CinemachineCamera. So we don’t add camera objects (FreeLook etc.) separately like before. Instead, there are various modifiers for rotation or positional tracking. (Like orbital Follow)

We add them as components to the CinemachineCamera object (again from within itself (via AddExtension)). In my scenario I needed to be able to change the input names of the camera according to the detected device, which seems not possible in the new version (Because InputAxisController thing). So I create two separate CinemachineCameras and change the activation status according to the detected device and it works fine.

Thanks for the answer tho!