Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 14 Next capture
2021 2022 2023
2 captures
13 Jun 22 - 14 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by Fox_GAMING · Jan 04, 2021 at 10:16 PM · c#inputassetasset storebinding

How to reference New InputSystem Input Values in C# Script?

Hi, I'm working on a game, where the player collects trash, from Trash cans, and dumps them into a Trash Truck. I'm currently trying to convert my game over to the new Input System, so that I can have support for multiple controllers.

I'm using a particular asset, on the Unity Asset Store, called First Person All-In-One. It uses the Old Input System. I've written a script, called MultInput, which uses the New Input System. Here's the Script:

 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 using UnityEngine.InputSystem;
 
 public class MultInput : MonoBehaviour
 {
     #region oldscript
     /*
     [SerializeField] public InputAction movement;
 
     Vector2 move;
     Vector2 direction;
 
     private void Awake()
     {
         movement.performed += OnMovementPerformed;
         movement.canceled += OnMovementPerformed;
     }
 
     private void OnMovementPerformed(InputAction.CallbackContext context)
     {
         direction = context.ReadValue<Vector2>();
 
         Horizontal = direction.x;
         Vertical = direction.y;
     }
 
     private void OnDisable()
     {
         movement.Disable();
     }
 
     private void OnEnable()
     {
         movement.Enable();
     }
 
     // Start is called before the first frame update
     void Start()
     {
    
     }
 
     // Update is called once per frame
     void Update()
     {
         Vector2 d = new Vector2(direction.x, direction.y) * Time.deltaTime;
         Debug.Log("MultInput-Move- :" + d);
     }
 
     public float Vertical { get; set; }
 
     public float Horizontal { get; set; }
     */
     #endregion
 
     #region newscript
 
     public PlayerControls controls;
 
     public float primVal;
     public float secVal;
     public float randKey;
     public float equipKey;
     public float jumpKey;
     public float crouchKey;
 
     void Awake()
     {
         controls = new PlayerControls();
 
         controls.Gameplay.Primary.performed += ctx => primVal = ctx.ReadValue<float>();
         controls.Gameplay.Primary.canceled += ctx => primVal = 0.0f;
 
         controls.Gameplay.Secondary.performed += ctx => secVal = ctx.ReadValue<float>();
         controls.Gameplay.Secondary.canceled += ctx => secVal = 0.0f;
 
         controls.Gameplay.RandKey.performed += ctx => randKey = ctx.ReadValue<float>();
         controls.Gameplay.RandKey.canceled += ctx => randKey = 0.0f;
 
         controls.Gameplay.EquipKey.performed += ctx => equipKey = ctx.ReadValue<float>();
         controls.Gameplay.EquipKey.canceled += ctx => equipKey = 0.0f;
 
         controls.Gameplay.Jump.performed += ctx => jumpKey = ctx.ReadValue<float>();
         controls.Gameplay.Jump.canceled += ctx => jumpKey = 0.0f;
 
         controls.Gameplay.Crouch.performed += ctx => crouchKey = ctx.ReadValue<float>();
         controls.Gameplay.Crouch.canceled += ctx => crouchKey = 0.0f;
     }
 
     void PrimButton()
     {
         Debug.Log("Primary Button!");
     }
 
     void Update()
     {
         Debug.Log("Primary Value: " + primVal);
         Debug.Log("Secondary Value: " + secVal);
         Debug.Log("RandKey Value: " + randKey);
         Debug.Log("EquipKey Value: " + equipKey);
         Debug.Log("JumpKey Value: " + jumpKey);
         Debug.Log("CrouchKey Value: " + crouchKey);
     }
 
     void OnEnable()
     {
         controls.Gameplay.Enable();
     }
 
     void OnDisable()
     {
         controls.Gameplay.Disable();
     }
     #endregion
 }

In the FPSAIO Asset's First-Person-Controller Script (Called FirstPersonAIO.cs,), It uses the Old Input System, and uses things like, "Input.GetAxis", and, "Input.GetButtonDown". I'm trying to reference my MultInput Script within this Asset's Script. I've also added a Debug.Log that gets the float value of one of the Input Actions, and it does work, when I press the Key, it correctly displays 1, and when I release it, it displays 0. However, (In This Example, at least, I'm trying to get the Jump Key to work.,), the Player / Character will not jump. Here's the code I have currently, from the FPSAIO Script. MultInt is the reference to the MultInput Script.

     private void Update(){
 
         #region Look Settings - Update
 
         Debug.Log("FPSAIO Jump: " + multInt.jumpKey);
         multInt.controls.Gameplay.Jump.performed += ctx => multInt.jumpKey = ctx.ReadValue<float>();
         multInt.controls.Gameplay.Jump.canceled += ctx => multInt.jumpKey = 0.0f;
 
         if (enableCameraMovement && !controllerPauseState){
             float mouseYInput = 0;
             float mouseXInput = 0;
             float camFOV = playerCamera.fieldOfView;
             if (cameraInputMethod == CameraInputMethod.Traditional || cameraInputMethod == CameraInputMethod.TraditionalWithConstraints){
                     mouseYInput = mouseInputInversion == InvertMouseInput.None || mouseInputInversion == InvertMouseInput.X ? Input.GetAxis("Mouse Y") : -Input.GetAxis("Mouse Y");
                     mouseXInput = mouseInputInversion == InvertMouseInput.None || mouseInputInversion == InvertMouseInput.Y ? Input.GetAxis("Mouse X") : -Input.GetAxis("Mouse X");
             }
             else{
                 mouseXInput= Input.GetAxis("Horizontal") * (mouseInputInversion == InvertMouseInput.None || mouseInputInversion == InvertMouseInput.Y ? 1 : -1);
             }            if(targetAngles.y > 180) { targetAngles.y -= 360; followAngles.y -= 360; } else if(targetAngles.y < -180) { targetAngles.y += 360; followAngles.y += 360; }
             if(targetAngles.x > 180) { targetAngles.x -= 360; followAngles.x -= 360; } else if(targetAngles.x < -180) { targetAngles.x += 360; followAngles.x += 360; }
             targetAngles.y += mouseXInput * (mouseSensitivity - ((baseCamFOV-camFOV)*fOVToMouseSensitivity)/6f);
             if (cameraInputMethod == CameraInputMethod.Traditional){ targetAngles.x += mouseYInput * (mouseSensitivity - ((baseCamFOV - camFOV) * fOVToMouseSensitivity) / 6f);}
             else {targetAngles.x = 0f;}
             targetAngles.x = Mathf.Clamp(targetAngles.x, -0.5f * verticalRotationRange, 0.5f * verticalRotationRange);
             followAngles = Vector3.SmoothDamp(followAngles, targetAngles, ref followVelocity, (cameraSmoothing)/100);
        
             playerCamera.transform.localRotation = Quaternion.Euler(-followAngles.x + originalRotation.x,0,0);
             transform.localRotation =  Quaternion.Euler(0, followAngles.y+originalRotation.y, 0);
         }
 
         #endregion
 
         #region Input Settings - Update
         //if(canHoldJump ? (canJump && Input.GetButton("Jump")) : (Input.GetButtonDown("Jump") && canJump) ){
         if (canHoldJump ? (canJump && multInt.jumpKey == 1) : (multInt.jumpKey == 1 && canJump))
         {
             jumpInput = true;
         }//else if(Input.GetButtonUp("Jump")){jumpInput = false;}
         else if (multInt.jumpKey == 0) { jumpInput = false; }

Also, and Update, I realize this now that this probably should be mentioned, but it appears as if none of the KeyBindings work with the New Input System. For all of them, I'm doing something along the lines of, if(multInt.FLOATNAME == 1.0f) instead of if(Input.GetKey(KeyCode.THEKEY), or something along those lines.

Does anyone have any idea how I can fix this? Or what I should do? Anything to help would be greatly appreciated.

If anyone needs any more information, please, let me know! Thanks!

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by S-Sz · Jan 31 at 11:43 AM

You should watch this tutorial https://www.youtube.com/watch?v=TD0R5x0yL0Y

You don't have to use float values, you can bind keys and read input from it. With new input system you don't have to use Update method, because all input works on events.

 private void OnEnable() // subscribe events
 {
     InputManager.inputActions.InGame.Interact.performed += Interact;
 }
 // InGame is the binding map
 // Interact is LMB in this case
 
 private void Interact(CallbackContext obj)
 {
 // Do something when LMB was pressed
 }
 
 // if you want to use input in update, you can use it directly:
 
 bool isLMBPressed = false;
 private void Update()
 {
     if (InputManager.inputActions.InGame.Interact.WasPressedThisFrame())
         isLMBPressed = true;
 
     if (InputManager.inputActions.InGame.Interact.WasReleasedThisFrame())
         isLMBPressed = false;
 }
Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

693 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

How to use Multi-Tap in New Input System for Running? 1 Answer

Unbinding in game settings 1 Answer

How to make character asset moveable? 3 Answers

Low FPS in android game if using MK glow free asset 0 Answers

Multiple Cars not working 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges