ガベージコレクション(GC)を起こさせない様にする方法

2023年1月11日

小さなデータを扱う場合、クラスを構造体にすることで、ガベージコレクションを起こさない様にすることができます。

サンプルは、ExampleScriptクラス内にMyClassが内包されていますが、これはインナークラスという仕組みです

変更前

using UnityEngine;
public class ExampleScript : MonoBehaviour
{
    class MyClass
    {
        public int hp;
        public string name;
    }
    void Start()
    {
        MyClass myClass = new MyClass
        {
            hp = 10,
            name = "Falcon"
        };
        Debug.Log(myClass.hp);
        Debug.Log(myClass.name);
    }
}

変更後

using UnityEngine;
public class ExampleScript : MonoBehaviour
{
    struct MyStruct
    {
        public int hp;
        public string name;
    }
    void Start()
    {
        MyStruct myStruct = new MyStruct
        {
            hp = 10,
            name = "Falcon"
        };
        Debug.Log(myStruct.hp);
        Debug.Log(myStruct.name);
    }
}

C#

Posted by hidepon