Game
Kordex - The Golden Path
8 years ago

Log #9: How to detect key pressed events within the Unity Editor


Hey guys!

When writing your own editor scripts you’ll come to the point where you have to check whether or not a certain key (like Alt or Ctrl) is pressed. You may end up with the most obvious solution like the following:

5d09ad7761890.png

That’s cool, but it gets really unhandy if you need to add more buttons like the following:

5d09ad79efba0.png

Even worse is that for each editor script you have to repeat that process - this smells like bad code ^^

Static constructors are great!

I came up with the following solution: I’m creating an EventUtility-class containing a static Dictionary that stores a boolean for each possible KeyCode. Within a static constructor I initialize every possible KeyCode with false:

5d09ad7c10de1.png

Then I’m providing a static method which takes care about the key state and returns whether or not the key is pressed:

5d09ad7d7f678.png

Lazy Method

If you don’t want to prepare the dictionary in the static constructor beforehand, you can make IsKeyPressed(…) lazy:

5d09ad7f60eac.png

Other Problems

Sadly it’s not that easy because once the SceneView loses keyboard focus and regains it, it needs some frames before it detects, that the Alt-key is pressed and therefore returns false even though the user holds the key.

In one of our next posts, I’ll show you how to create a nice SceneViewEditorWindow which prepares some neat features for working with EditorWindows that uses SceneView-Features and provides a solution for the Focus-problem!

Thank you very much!



0 comments

Loading...

Next up

Log #2: New Island Part

Protege el conocimiento, salva la historia. Guardian of Lore es un platformer 2D en el que debes luchar para mantener viva la memoria de la mitología latinoamericana. El juego llegará a Steam el 18 de mayo: https://steam.pm/app/1211740 #ScreenshotSaturday

"Our work is never over" they said.

Just a Pico sprite

I worked so hard to get all four of them to the end safely, but then...

Cash Banooca

Auto-chess meets Clash Royale in an intense strategic battle. Outsmart your opponent, hide your play and crush their armies! Empire Builder just got another major update, check it out! https://gamejolt.com/games/EmpireBuilder/558901

I mostly build 3D First Person Shooter game mechanics in Unity, and in this I'm just showing C4 mechanics I made for a little side project I am working on! :)

Our menu, gathered a huge feedback and positive comments among foreign audience, what you say? Game Steam: https://store.steampowered.com/app/1543090/LiBER/

Hello my space friends! Now I added a space background to the ship. I love that space look but I still feel like stuff is missing. The lighting on the ship needs some improvements I think. Please tell me your opinion!