From c7f1bbd9920365950ccf6a7afbbbb3a0e5369854 Mon Sep 17 00:00:00 2001 From: ousttrue Date: Tue, 17 Sep 2024 14:32:44 +0900 Subject: [PATCH] fix Flip bug ! --- .../FastSpringBoneBufferCombiner.cs | 19 +++++-------------- .../SpringBoneJobs/FastSpringBoneScheduler.cs | 8 ++++---- 2 files changed, 9 insertions(+), 18 deletions(-) diff --git a/Assets/UniGLTF/Runtime/SpringBoneJobs/FastSpringBoneBufferCombiner.cs b/Assets/UniGLTF/Runtime/SpringBoneJobs/FastSpringBoneBufferCombiner.cs index f3147ea78..3ca90fcd0 100644 --- a/Assets/UniGLTF/Runtime/SpringBoneJobs/FastSpringBoneBufferCombiner.cs +++ b/Assets/UniGLTF/Runtime/SpringBoneJobs/FastSpringBoneBufferCombiner.cs @@ -55,22 +55,13 @@ namespace UniGLTF.SpringBoneJobs public bool HasBuffer => _batchedBuffers != null && _batchedBuffers.Length > 0; - int flipPhase = 0; - public (NativeArray current, NativeArray prev, NativeArray next) FlipBuffer() + public void FlipBuffer() { - switch (flipPhase++ % 3) - { - case 0: return (_currentTails, _prevTails, _nextTails); - case 1: return (_nextTails, _currentTails, _prevTails); - case 2: return (_prevTails, _nextTails, _currentTails); - default: - throw new Exception(); - } // dispose が狂う?? - // var tmp = _prevTails; - // _currentTails = _nextTails; - // _prevTails = _currentTails; - // _nextTails = tmp; + var tmp = _prevTails; + _prevTails = _currentTails; + _currentTails = _nextTails; + _nextTails = tmp; } public void Register(FastSpringBoneBuffer buffer) diff --git a/Assets/UniGLTF/Runtime/SpringBoneJobs/FastSpringBoneScheduler.cs b/Assets/UniGLTF/Runtime/SpringBoneJobs/FastSpringBoneScheduler.cs index 7e258400f..b35e7ec99 100644 --- a/Assets/UniGLTF/Runtime/SpringBoneJobs/FastSpringBoneScheduler.cs +++ b/Assets/UniGLTF/Runtime/SpringBoneJobs/FastSpringBoneScheduler.cs @@ -31,15 +31,15 @@ namespace UniGLTF.SpringBoneJobs Transforms = _bufferCombiner.Transforms }.Schedule(_bufferCombiner.TransformAccessArray, handle); - var (current, prev, next) = _bufferCombiner.FlipBuffer(); + _bufferCombiner.FlipBuffer(); handle = new UpdateFastSpringBoneJob { Joints = _bufferCombiner.Joints, Logics = _bufferCombiner.Logics, - CurrentTail = current, - PrevTail = prev, - NextTail = next, + CurrentTail = _bufferCombiner.CurrentTails, + PrevTail = _bufferCombiner.PrevTails, + NextTail = _bufferCombiner.NextTails, Springs = _bufferCombiner.Springs, Colliders = _bufferCombiner.Colliders, Transforms = _bufferCombiner.Transforms,