WorkTime (WIP) ⏱️

date
Aug 19, 2023
type
Project
year
2023
slug
work-time
status
Published
tags
Unity
EditorWindow
summary
Run timed focus sessions in a Unity EditorWindow. Just download the unitypackage, stick it into any project and open the Tools/WorkTime window.
Video preview
Run timed focus sessions in a Unity EditorWindow. Set up periods for Planning, Work and Rest, then let it count down and play a sound each time a new period starts. (Configure periods to your liking in a ScriptableAsset)
Download and stick into any project: ⬇️ WorkTime.unitypackage (Then open via Tools/WorkTime menu)
The main challenges were:
  • How to keep it running across Unity compiles - not too hard, just made sure everything I wanted to stick around was serialized and had to re-find all the UI bits again and again.
  • Keep it running when the window is hidden - this one was tricky. I built a helper class that I stick into the scene and turn invisible. But even then it relies on the user moving the mouse around occasionally or it won’t update. It works as long as you work 😉
  • Play Sound from an Editor script - this too is handled via an invisible helper class (it’s mostly working, if it stops, preview any AudioClip and it starts working again - not sure what’s going on, I’m open to ideas here…)
The UI is built with UI Toolkit (formerly known as UIElements).
notion imagenotion image
notion imagenotion image
I also have a version that runs as a standalone app, if you want to give that a try. But doesn’t have a way to customize periods (yet?).

Leave a comment