Hello there, soo after for the longest time having used a quite complex cusotm-camera-behaviour system I just wanted to checkout cinemachine and was a bit baffled as to how “complex” it is to setup a specific user-input ↔ camera-behaviour which doesn’t seem to be supported out of the box.
Basically I want the Orbital-Follow behaviour (sphere-style) to only rotate while pressing the right mouse-button.
So I looked into the InputAxisController and how things are updated and now built a modified version of it (main-difference checks whether there is a modifier-button InputActionReference referenced and if so checks whether the control is currently pressed for the current-player-index).
This works fine and as expected.
But now Zooming aka orbital radius behaves very very strange i.e. it does not adjust based on the input given by scroll-wheel (used the same action setup as CinemachineInputAxisController).
When attaching the debugger it is somewhat clear as to why nothing happens, it is because there is no IInputAxisOwner.AxisDescriptor.Hints.[X or Y] defined for the axis in CinemachineOrbitalFollow.cs
which causes X to be used while mouse-wheel default-direction is Y (even in CinemachineDefaultInputActions map)
I’m quite baboozled now as to why this magically works with the built-in AxisController as it should fail in the same way as with my own unless there is some weird hacky solution to this outside of the axis-controller going on but only if the default AxisController is being used?!
Binding the Look-Action as Orbital Axis Reference shows it would work (x-mouse-movement) when the correct axis would be used.
To my understanding I can’t define the axis-hint from outside and fix it that way without ugly reflection-hacks…
Am I doing something wrong entirely? Or Did I overlook how to override the axis-hint somewhere?!