【Unity】NativeList自作
概要
NativeArray
、ECSやJobSystemとセットで紹介されることが多いけど、普通の配列との違いとしてGCに負担をかけないので、使えるところは積極的に使っていけばよさげ。
そうすると可変長となるNativeList
も欲しい。が、未実装。てなわけでここでは最小限のものを自分で作ることにする。正式にリリースされたら差し替えよう。
コード
さしあたりAdd
とClear
とインデクサとイテレータがあれば役には立つだろ、という感じでやった。
(あまり気の利いた機能をつけるとあとで正式版に差し替えるとき面倒が起こりかねねーな、という逃げの姿勢でもある)
GC軽減を目的とするためにクラスではなく構造体なんだけど、これだとコピーした際に配列を共有したままCount
がずれることがあり得るのでちょっと気を付ける必要がある。まあ、メソッド内で使い捨てる作業用バッファとかに使うなら安全なんじゃないでしょうか。
Unity2018.2.8f1
ちなみに
T where : struct
と書かれているけど、構造体であれば使えるわけではない。
どうやら構造体のメンバに参照型が含まれてるとダメっぽくて、実行時にnot blittable
だかエラーが出る。