変数が各カーネル間で共有されていないらしく、シェーダ内では0値が入っているようで困っています。
定義コードは。。
cs.SetBuffer(cs.FindKernel("AttackMain"), "Bullets", units); cs.SetBuffer(cs.FindKernel("btn_attack"), "Bullets", units); cs.SetBuffer(cs.FindKernel("AttackMain"), "Bullets2", Bullets2); cs.SetBuffer(cs.FindKernel("btn_attack"), "Bullets2", Bullets2); cs.SetFloat("instanceunitcount", Units.Count);//この値が入りません
実行コードは。。
#pragma kernel AttackMain #pragma kernel btn_attack RWStructuredBuffer<int> Bullets; RWStructuredBuffer<int> police; float instanceunitcount; [numthreads(8, 1, 1)] void btn_attack(uint3 id : SV_DispatchThreadID) { } [numthreads(8, 1, 1)] void AttackMain(uint3 id : SV_DispatchThreadID){ }
です。
変数をC#から代入する際にルール等まちがっていましたらアドバイスお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。