うにてぃブログ

主にUnityとC#に関する記事を書いていきます

【Unity】時間を計測する Scope

時間を計測する際に、毎回インスタンス作成して、Start, Stop するのが面倒だったので Scope を作成してみました。

using System;
using System.Diagnostics;
using Debug = UnityEngine.Debug;
 
public class StopWatchScope : IDisposable
{
    private Stopwatch _stopwatch;
 
    public StopWatchScope()
    {
        _stopwatch = new Stopwatch();
        _stopwatch.Start();
    }
 
    void IDisposable.Dispose()
    {
        _stopwatch.Stop();
        Debug.Log($"time: {_stopwatch.Elapsed.Milliseconds}ms");
    }
}

使い方

利用するときは using を使って定義するだけ

   private void Main()
    {
        using (new StopWatchScope())
        {
            // Hoge
        }
    }