diff --git a/Assets/UniGLTF/Runtime/SpringBoneJobs/FastSpringBoneBufferCombiner.cs b/Assets/UniGLTF/Runtime/SpringBoneJobs/FastSpringBoneBufferCombiner.cs
index a1c46b747..efd342140 100644
--- a/Assets/UniGLTF/Runtime/SpringBoneJobs/FastSpringBoneBufferCombiner.cs
+++ b/Assets/UniGLTF/Runtime/SpringBoneJobs/FastSpringBoneBufferCombiner.cs
@@ -32,21 +32,7 @@ namespace UniGLTF.SpringBoneJobs
public bool HasBuffer => _buffers.Count > 0 && _combinedBuffer != null;
- public void Register(FastSpringBoneBuffer buffer)
- {
- _request.Enqueue(new Request { Add = buffer });
- }
-
- public void Unregister(FastSpringBoneBuffer buffer)
- {
- _request.Enqueue(new Request { Remove = buffer });
- }
-
- ///
- /// 順番が変わらないように更新する
- ///
- ///
- public void ReRegister(FastSpringBoneBuffer remove, FastSpringBoneBuffer add)
+ public void Register(FastSpringBoneBuffer add, FastSpringBoneBuffer remove)
{
_request.Enqueue(new Request { Remove = remove, Add = add });
}
diff --git a/Assets/UniGLTF/Runtime/SpringBoneJobs/FastSpringBoneConbinedBuffer.cs b/Assets/UniGLTF/Runtime/SpringBoneJobs/FastSpringBoneConbinedBuffer.cs
index 6a64725b0..3202abfbd 100644
--- a/Assets/UniGLTF/Runtime/SpringBoneJobs/FastSpringBoneConbinedBuffer.cs
+++ b/Assets/UniGLTF/Runtime/SpringBoneJobs/FastSpringBoneConbinedBuffer.cs
@@ -79,7 +79,7 @@ namespace UniGLTF.SpringBoneJobs
}
///
- /// Lidt をひとつの FastSpringBoneCombinedBuffer に統合する
+ /// Job向けに、Lidt[FastSpringBoneBuffer] をひとつの FastSpringBoneCombinedBuffer に統合する
///
internal static JobHandle Create(JobHandle handle,
IReadOnlyList buffers, out FastSpringBoneCombinedBuffer combined)
diff --git a/Assets/VRM/Runtime/SpringBone/Jobs/Vrm0XFastSpringBoneRuntime.cs b/Assets/VRM/Runtime/SpringBone/Jobs/Vrm0XFastSpringBoneRuntime.cs
index 4e730e4ac..45d56ffad 100644
--- a/Assets/VRM/Runtime/SpringBone/Jobs/Vrm0XFastSpringBoneRuntime.cs
+++ b/Assets/VRM/Runtime/SpringBone/Jobs/Vrm0XFastSpringBoneRuntime.cs
@@ -57,7 +57,7 @@ namespace VRM
return;
}
- m_service.BufferCombiner.Unregister(m_buffer);
+ m_service.BufferCombiner.Register(add: null, remove: m_buffer);
m_buffer.Dispose();
m_buffer = null;
}
@@ -67,7 +67,7 @@ namespace VRM
Debug.Assert(m_buffer == null);
var buffer = await SpringBoneJobs.FastSpringBoneReplacer.MakeBufferAsync(m_vrm, awaitCaller);
m_buffer = buffer;
- SpringBoneJobs.FastSpringBoneService.Instance.BufferCombiner.Register(buffer);
+ SpringBoneJobs.FastSpringBoneService.Instance.BufferCombiner.Register(add: buffer, remove: null);
}
diff --git a/Assets/VRM10/Runtime/Components/Vrm10Runtime/Vrm10FastSpringboneRuntime.cs b/Assets/VRM10/Runtime/Components/Vrm10Runtime/Vrm10FastSpringboneRuntime.cs
index 4f26d93d1..246eb9c7c 100644
--- a/Assets/VRM10/Runtime/Components/Vrm10Runtime/Vrm10FastSpringboneRuntime.cs
+++ b/Assets/VRM10/Runtime/Components/Vrm10Runtime/Vrm10FastSpringboneRuntime.cs
@@ -55,7 +55,7 @@ namespace UniVRM10
{
if (m_fastSpringBoneBuffer != null)
{
- m_fastSpringBoneService.BufferCombiner.Unregister(m_fastSpringBoneBuffer);
+ m_fastSpringBoneService.BufferCombiner.Register(add: null, remove: m_fastSpringBoneBuffer);
m_fastSpringBoneBuffer.Dispose();
}
}
@@ -87,16 +87,10 @@ namespace UniVRM10
}
m_building = true;
- // 登録削除
- if (m_fastSpringBoneBuffer != null)
- {
- m_fastSpringBoneService.BufferCombiner.Unregister(m_fastSpringBoneBuffer);
- }
+ var fastSpringBoneBuffer = await FastSpringBoneBufferFactory.ConstructSpringBoneAsync(awaitCaller, m_instance, m_fastSpringBoneBuffer);
- m_fastSpringBoneBuffer = await FastSpringBoneBufferFactory.ConstructSpringBoneAsync(awaitCaller, m_instance, m_fastSpringBoneBuffer);
-
- // 登録
- m_fastSpringBoneService.BufferCombiner.Register(m_fastSpringBoneBuffer);
+ m_fastSpringBoneService.BufferCombiner.Register(add: fastSpringBoneBuffer, remove: m_fastSpringBoneBuffer);
+ m_fastSpringBoneBuffer = fastSpringBoneBuffer;
m_building = false;
return true;
diff --git a/Assets/VRM10/Runtime/Components/Vrm10Runtime/Vrm10FastSpringboneRuntimeStandalone.cs b/Assets/VRM10/Runtime/Components/Vrm10Runtime/Vrm10FastSpringboneRuntimeStandalone.cs
index 31153063d..e1660af07 100644
--- a/Assets/VRM10/Runtime/Components/Vrm10Runtime/Vrm10FastSpringboneRuntimeStandalone.cs
+++ b/Assets/VRM10/Runtime/Components/Vrm10Runtime/Vrm10FastSpringboneRuntimeStandalone.cs
@@ -54,7 +54,7 @@ namespace UniVRM10
public void Dispose()
{
- m_bufferCombiner.Unregister(m_fastSpringBoneBuffer);
+ m_bufferCombiner.Register(add: null, remove: m_fastSpringBoneBuffer);
m_fastSpringBoneBuffer.Dispose();
m_fastSpringBoneScheduler.Dispose();
@@ -88,16 +88,9 @@ namespace UniVRM10
}
m_building = true;
- // 登録削除
- if (m_fastSpringBoneBuffer != null)
- {
- m_bufferCombiner.Unregister(m_fastSpringBoneBuffer);
- }
-
- m_fastSpringBoneBuffer = await FastSpringBoneBufferFactory.ConstructSpringBoneAsync(awaitCaller, m_instance, m_fastSpringBoneBuffer);
-
- // 登録
- m_bufferCombiner.Register(m_fastSpringBoneBuffer);
+ var fastSpringBoneBuffer = await FastSpringBoneBufferFactory.ConstructSpringBoneAsync(awaitCaller, m_instance, m_fastSpringBoneBuffer);
+ m_bufferCombiner.Register(add: fastSpringBoneBuffer, remove: m_fastSpringBoneBuffer);
+ m_fastSpringBoneBuffer = fastSpringBoneBuffer;
m_building = false;
return true;