본문 바로가기

개발/Unity, C#

Unity C# Enum 사용시 Garbage 문제???

 

얼마전까지 유니티에서 enum이나 struct에서를 Dictionary, List 등에서 사용하면 가비지가 발생하는 것으로 알고 사용하고 있었는데..

 

유니티 버전이 오르면서 .net 4 버전 이상을 사용하게 됐고

 

그에 따라 enum인지 체크해서 enum 전용으로 비교해준다고 함...

 

적당한 테스트 코드

using System.Collections.Generic;
using UnityEngine;

public class EnumTest : MonoBehaviour
{
    enum TestType
    {
        Test1,
        Test2,
        Test3,
    }
    Dictionary<TestType, int> dic = new Dictionary<TestType, int> { 
        { TestType.Test1, 1 },
        { TestType.Test2, 2 },
        { TestType.Test3, 3 } 
    };

    void Start()
    {
        for (int i = 0; i < 100000000; i++)
        {
            var b = dic.ContainsKey(TestType.Test1);
        }
    }
}

 

결과

 

진짜 안 생겼다...