【Unity】FlexSourceActorでAugumentExceptionエラー

エラー

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