Editor拡張で作業時間を記録

Unityで作業している時間がどれくらいなのか知るためには、ストップウォッチみたいなもので測ったり、時計を見たりすることで大体測れます。しかし、いちいちそういったことをするような習慣を身につけなければ測り忘れたりすることは起こるので面倒だと思います。

UnityのEditor拡張で自動で作業時間を測ることができます。この拡張は他の使い方に応用できそうなので、シンプルなままでソースを載せておきます。
使うものはEditorApplication.updateInitializeOnLoadMethodAttributeです。

[InitializeOnLoadMethod]をメソッドにつけておくとエディターの起動時にそのメソッドが呼び出されます。そこにエディターで毎回行ってほしいことを登録することで定期的に計測結果を保存させるようにしています。
EditorApplication.updateは秒間100回程度呼び出される処理を登録しておくために使います。起動してからの時間を測り、経過した時間分だけ足してEditorPrefsで値を保存しています。
EditorPrefsはPlayerPrefsのエディター版でPlayerPrefsとは異なる場所に保存されるデータです。WindowsではレジストリのHKCU\Software\Unity Technologies\UnityEditor 5.xというキーの中に保存されます。エディターのメジャーバージョンごとに共通の場所に保存しているのでプロジェクトごとに保存される場所を変えるということができないことに注意してください。

制御用のウィンドウを作ったり、一定時間ごとに処理をするようにしたりと色々拡張の余地はあります。EditorApplication.timeSinceStartupで時間を計測しているのが悪いのか時間の計測がうまくできないことがあります。

コメント

タイトルとURLをコピーしました