コガネブログ

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

【Unity】クラスと構造体それぞれのインスタンスを object 型にキャストした時の GC Alloc の違い

クラス

using UnityEngine;

public class Example : MonoBehaviour
{
    private class Hoge { }

    private Hoge hoge = new Hoge();

    private void Update()
    {
        object obj = hoge;
        Hoge hoge2 = ( Hoge )obj;
    }
}

f:id:baba_s:20190407192904p:plain

クラスの場合は GC Alloc は発生しない

構造体

using UnityEngine;

public class Example : MonoBehaviour
{
    private struct Hoge { }

    private Hoge hoge = new Hoge();

    private void Update()
    {
        object obj = hoge;
        Hoge hoge2 = ( Hoge )obj;
    }
}

f:id:baba_s:20190407192911p:plain

構造体の場合は GC Alloc は発生する