うにてぃブログ

主にUnityとC#に関する記事を書いていきます

【Unity】transform.position にアクセスした際の GC を見る

Unity では 以下のような拡張メソッドを利用して Transform の位置を変更することがあるが

これを何度か呼んだ場合 GC がどうなってるかを調べる

public static class TransformExtension
{
    public static void SetPositionY(this Transform self, float value)
    {
        var pos = self.transform.position;
        pos.y = value;
        self.transform.position = pos;
    }
}

GC の確認

Update で毎フレーム position を変更する処理を呼び出してみる

   private void Update()
    {
        transform.SetPositionY(10f);
        transform.SetPositionX(10f);
    }

確認したところ初回 の transform.position のアクセス時に 48B の GC があったものの
それ以降何度アクセスしても GC は 0 でした