Search Unity

  1. The Unity Pro & Visual Studio Professional Bundle gives you the tools you need to develop faster & collaborate more efficiently. Learn more.
    Dismiss Notice
  2. Improved Prefab workflow (includes Nested Prefabs!), 2D isometric Tilemap and more! Get the 2018.3 Beta now.
    Dismiss Notice
  3. Want more efficiency in your development work? Sign up to receive weekly tech and creative know-how from Unity experts.
    Dismiss Notice
  4. Participate with students all over the world and build projects to teach people. Join now!
    Dismiss Notice
  5. Build games and experiences that can load instantly and without install. Explore the Project Tiny Preview today!
    Dismiss Notice
  6. Improve your Unity skills with a certified instructor in a private, interactive classroom. Watch the overview now.
    Dismiss Notice
  7. Want to see the most recent patch releases? Take a peek at the patch release page.
    Dismiss Notice

Overriding Freecamera Cinemachine inputs or Freecamera axis inversion

Discussion in 'Cinemachine' started by sebsmax, Jul 24, 2017.

  1. sebsmax

    sebsmax

    Joined:
    Sep 8, 2015
    Posts:
    65
    It took me a while to figure it out, and it's fairly simple. So I'm posting that here to save newcomers a bit of time

    Hooking the controls to any external input system:
    Code (CSharp):
    1.      
    2.  
    3.         public void Start()
    4.         {
    5.             CinemachineCore.GetInputAxis = GetAxisCustom;
    6.         }
    7.  
    8.         public float GetAxisCustom(string axisName)
    9.         {
    10.             if(axisName == "Mouse X")
    11.             {
    12.                 return [YOUR INPUT VALUE HERE].x;
    13.             }
    14.             else if (axisName == "Mouse Y")
    15.             {
    16.                 return [YOUR INPUT VALUE HERE].y;
    17.             }
    18.  
    19.             return 0;
    20.         }
    Horizontal Axis inversion:

    Code (CSharp):
    1.      
    2.  
    3.         public void Start()
    4.         {
    5.             CinemachineCore.GetInputAxis = GetAxisCustom;
    6.         }
    7.  
    8.         public float GetAxisCustom(string axisName)
    9.         {
    10.             if(axisName == "Mouse X")
    11.             {
    12.                 return -UnityEngine.Input.GetAxis("Mouse X");
    13.             }
    14.             else
    15.                 return UnityEngine.Input.GetAxis(axisName);          
    16.         }
     
    Last edited: Jul 24, 2017