Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Game Development Unity Basics Creating the Core Game Logic Capturing Player Input

Lucas Skinner
Lucas Skinner
2,064 Points

I liked the code so it would give me a message when i pressed space but its just giving me a error message

this is the message

InvalidOperationException: You are trying to read Input using the UnityEngine.Input class, but you have switched active Input handling to Input System package in Player Settings.
UnityEngine.Internal.InputUnsafeUtility.GetButtonDown (System.String buttonName) (at <f4e06d84f805445ca5ae28cb191715cf>:0)
UnityEngine.Input.GetButtonDown (System.String buttonName) (at <f4e06d84f805445ca5ae28cb191715cf>:0)
NewMonoBehaviourScript.Update () (at Assets/scripts/Player.cs:14)

1 Answer

Travis Alstrand
seal-mask
STAFF
.a{fill-rule:evenodd;}techdegree
Travis Alstrand
Treehouse Teacher

Hey there Lucas Skinner !

This seems to be saying that the new Input System was enabled in:

Edit → Project Settings → Player → Other Settings → Active Input Handling → “Input System Package (New)”

When “Input System Package (New)” is active, Unity disables the legacy UnityEngine.Input API. So when the script tries to call Input.GetButtonDown("Flap"), Unity throws:

InvalidOperationException: You are trying to read Input using the UnityEngine.Input class...

First, I would double check that UnityEngine.InputSystem was not imported into your file automatically / accidentally. Without seeing the code, I'm not sure, but maybe that would trigger this error as well.

If not...

🛠 To Fix: Use the old Input system

Go to Edit → Project Settings → Player → Other Settings

Find Active Input Handling

Change it to “Input Manager (Old)” or "Both"

Click Save and restart the editor

This should make Input.GetButtonDown() work again.

If this was something that wasn't changed by you personally, please let me know. If Unity is having this as a new default setting in new projects I'll need to write some warnings in the Teacher's Notes 👍