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

We are under attack!

Chiaki Nanami!

Successful landing

#screenshotsaturday

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

Szayel Aporro Granz - Bleach

If you’ve played the Vault demo and enjoyed it, please consider ‘liking’ the game page here on Gamejolt and/or leave a comment!

Also please consider tossing Vault on your Wishlist, I really appreciate your support!

https://store.steampowered.com/app/1251800

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! :)

Subscribe to technoblade

Sonic and Shadow as Pokémons. #Fakemon