Game
Kordex - The Golden Path
7 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

Smile! Here, take some happy pills! ✨💊 #Blender #3DModelling #3DArt Buy me a Ko-fi: https://ko-fi.com/barbarafb_

Family band complete!

In the quest for accessibility, I'm adding Resurrection Shrines for players on the 'novice' end of the platforming spectrum.

In order to unlock the power of a Shrine, you must collect 3 'Souls' from your dead corpses! (the floating blue orbs)

Shuiro Haname. #Commission

Commission for @ShuHaname

I did this on my 3DS ^^ #Kirby

Explosive domino effect

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

We're knee deep in multiple large features and "game feel". Quick peek behind the scenes in this weeks Dev Blog: https://bit.ly/2QmmaQM

OK, this starts to be too tricky puzzle already :D

#platformer #indiegame #puzzle