コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】Physics2D.simulationMode を特定の範囲でのみ変更するクラス

ソースコード

using System;
using UnityEngine;

namespace Kogane
{
    public sealed class SetPhysics2DSimulationModeScope : IDisposable
    {
        private readonly SimulationMode2D m_oldSimulationMode;

        private bool m_isDisposed;

        public SetPhysics2DSimulationModeScope( SimulationMode2D simulationMode )
        {
            m_oldSimulationMode      = Physics2D.simulationMode;
            Physics2D.simulationMode = simulationMode;
        }

        public void Dispose()
        {
            if ( m_isDisposed ) return;
            m_isDisposed = true;

            Physics2D.simulationMode = m_oldSimulationMode;
        }
    }
}