エラー
FlexSourceActorで、LifeTimeの値を変更したところ下記のようなエラーが発生
ArgumentException: ComputeBuffer.SetData() : Accessing 35100 bytes at offset 0 for Compute Buffer of size 35000 bytes is not possible. UnityEngine.ComputeBuffer.SetData (System.Array data) (at C:/buildslave/unity/build/Runtime/Export/ComputeShader.bindings.cs:124) NVIDIA.Flex._auxFlexDrawFluid.UpdateMesh (NVIDIA.Flex.FlexContainer+ParticleData _particleData) (at Assets/NVIDIA/Flex/Auxiliary/_auxFlexDrawFluid.cs:247) NVIDIA.Flex.FlexContainer.UpdateDrawFluid (NVIDIA.Flex.FlexContainer+ParticleData _particleData) (at Assets/NVIDIA/Flex/Assets/FlexContainer.cs:788) NVIDIA.Flex.FlexContainer.UpdateSolver () (at Assets/NVIDIA/Flex/Assets/FlexContainer.cs:696) NVIDIA.Flex.FlexContainer.FixedUpdate () (at Assets/NVIDIA/Flex/Assets/FlexContainer.cs:605) NVIDIA.Flex.FlexScene.FixedUpdate () (at Assets/NVIDIA/Flex/Helpers/FlexScene.cs:68)
解決策
_auxFlexDrawFluid.csの247行目の下記のスクリプトを、
if (m_indexBuffer != null) { m_indexBuffer.SetData(indices); }
次のように修正する。
if (m_indexBuffer != null) { m_indexBuffer.SetData(indices, 0, 0, m_indexBuffer.count); }
おそらくバッファーの更新が行われないのが問題のようで、毎回更新するように変更することで解決したと思われる。
下記サイトを参考にした。 github.com