概要
using System; using UnityEngine; public class Example : MonoBehaviour { private enum Type { GRASS, FIRE, WATER, } private void Update() { Hoge1( Type.FIRE ); } private void Hoge1( Enum value ) { } }
System.Enum で引数を受け取ると
GC Alloc が発生するが
using System; using UnityEngine; public class Example : MonoBehaviour { private enum Type { GRASS, FIRE, WATER, } private void Update() { Hoge2( Type.FIRE ); } private void Hoge2<T>( T value ) where T : Enum { } }
Generic 制約 で Enum を指定すると
GC Alloc は発生しない
参考サイト様
https://www.slideshare.net/xin9le/dotnetperformancetips-170268354