いんでぃーづ

ゲームいろいろ、いろいろ自由

Unity ECS : ジョブでNativeArrayのメモリリークが起きている場合の解決方法

とりあえず動くのを優先してジョブをガリガリ書いていると、以下のようなエラー表示によく出くわします。

f:id:sugar_affordance:20201110091446p:plain

A Native Collection has not been disposed, resulting in a memory leak. Enable Full StackTraces to get more details.

NativeArray などでメモリを動的確保してから解放しなかったのが原因でメモリリークとしてエラーが出ているようです。
ECS使う上では必ず見たことがあるエラーかと思います。
これが出た場合の解決方法です。

・環境 Unity 2020.1

  • スタックトレースを有効にする
    • アロケーターについて
  • メモリを確保しているところをusingで囲む
続きを読む

Unity ECS : preview版 (0.8.0) Hybrid Renderer V2 を使う

基本的に私は何も考えずにUnityをメジャーアップデートして使うしパッケージもどんどんpreview状態で使っていくタイプなのですが、そのたびに何かしら問題が発生し、開発期間中にハマるときは大体Unityアップデートした直後だったりして「ちょっとお前落ち着け」と自分に言い聞かせたくもなりますが、楽しいからしょうがないね。

ということで、今作っているローグライクゲームで、生成した3Dダンジョンをどうやってシーンに構築するかと考えたときに、自然とDOTSでやろうという流れになりました(脳内で)。

今回はDOTSの Hybrid Renderer を導入する手順です。

言わずもがなECS関連は2020年現在バリバリのpreviewで、破壊的変更も、超巨大巨人が壁を蹴り壊すごとく、いとも簡単にえげつなく行われていきます。
つまり、この記事が来月でも使えるという保証はありません(泣)。

  • Hybrid Renderer とは
  • 導入の第一歩
    • Hybrid Renderer のバージョンについて
    • V2の導入環境について
    • 必要なパッケージのインポート
    • V2を使うためプロジェクトの設定を変更
  • 描画するEntityをシーンに配置する
  • 結果
続きを読む

“Unity” and Unity logos are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere, and are used under license.


免責事項

当サイトの広告バナー、リンクによって提供される情報、サービス内容について、当サイトは一切の責任を負いません。

また、当サイトの情報を元にユーザ様が不利益を被った場合にも、当サイトは一切の責任を負いません。

すべて自己責任でお願いします。