ichiyamanのブログ

基本Tech Logです

写経 : BatchRenderGroup Phase0

今回は gitの解説記事をを読みながら、新規プロジェクトで同等のプログラムを作成することを写経とします。

元記事
https://blog.unity.com/engine-platform/batchrenderergroup-sample-high-frame-rate-on-budget-devices

github
https://github.com/Unity-Technologies/brg-shooter

■今回のサンプルの趣旨
多くのデモはHigh-end PC用のものだが、今回はスマホのGLES3.0で動作するものです。 BatchRenderGroup, Burst compiler と C# Job System を使います。 Unity2022.3 が必要ですが、DOTSパッケージは必要ありません。

■最終形
こんなの

実行中の画面

■要件分解
- BGがAnimaionしてる、多分Vertex animation
- カメラの移動とともにBGを自動生成している
- Playerと思しきPlaneが左右に移動している
- 弾を撃っている
- 敵が出てくる
- 敵を玉に当てると爆発する
- Playerが爆発している

■Phase
1. 環境を作る(Burst Compiler, C# Job System)
2. BGの自動生成
3. カメラを動かす
4. Playerを動かす
5. 敵を出す
6. 弾を撃つ
7. 敵が玉に当たると爆発する
8. Playerが玉に当たると爆発する



■Phase 1. 環境を作る(Burst Compiler, C# Job System)
1-1 とりあえず URP 付き 3D コアでプロジェクト作成
1-2 Packageをinstall ?
 BurstはDefaultで入ってるから、BRGとJobSystemは必要なのかな?
 元のソースではそのようなPackageは見つからないのでそのまま進む

■Phase2. BGの自動生成
 ゼロから作るのは難しそうなのでスケルトンアプローチする

  2-1 以下ファイルをコピー
BRG_Background.cs
BRG_Container.cs
BRG_Debris.cs

以下のエラーが出るので
error CS0227: Unsafe code may only appear if compiling with /unsafe. Enable "Allow 'unsafe' code" in Player Settings to fix this error.
ここをCheck

2-2 background objectを作成して、BRG_Backgroundを追加

BRG_Debrisがエラーになるので、一旦コメントアウトする

BGっぽいものが出ましたね

ソースを見ていきます。

よくわからないのでさらに Simpleな Tutorialを探す。