From 11b6689c01f8fdbe45d9b43f81b2ef53a5cfd3ad Mon Sep 17 00:00:00 2001 From: ousttrue Date: Tue, 25 Oct 2022 21:50:59 +0900 Subject: [PATCH] =?UTF-8?q?local=20=E5=A4=89=E6=95=B0=E3=81=AE=E4=BD=BF?= =?UTF-8?q?=E3=81=84=E3=81=BE=E3=82=8F=E3=81=97=E3=82=84=E3=82=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../System/FastSpringBoneScheduler.cs | 40 +++++++++++-------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/Assets/VRM10/Runtime/FastSpringBone/System/FastSpringBoneScheduler.cs b/Assets/VRM10/Runtime/FastSpringBone/System/FastSpringBoneScheduler.cs index c5079cfc0..014de66b6 100644 --- a/Assets/VRM10/Runtime/FastSpringBone/System/FastSpringBoneScheduler.cs +++ b/Assets/VRM10/Runtime/FastSpringBone/System/FastSpringBoneScheduler.cs @@ -13,21 +13,29 @@ namespace UniVRM10.FastSpringBones.System _bufferCombiner = bufferCombiner; } + /// + /// SpringBone の依存関係のある Job を直列にスケジュールする + /// + /// 1. ReconstructIfDirty + /// 2. PullTransformJob + /// 3. UpdateFastSpringBoneJob + /// 4. PushTransformJob + /// + /// public JobHandle Schedule() { - var handle = default(JobHandle); - handle = _bufferCombiner.ReconstructIfDirty(handle); + var handle0 = _bufferCombiner.ReconstructIfDirty(default); if (!_bufferCombiner.HasBuffer) { - return handle; + return handle0; } - - handle = new PullTransformJob - { - Transforms = _bufferCombiner.Transforms - }.Schedule(_bufferCombiner.TransformAccessArray, handle); - - handle = new UpdateFastSpringBoneJob + + var handle1 = new PullTransformJob + { + Transforms = _bufferCombiner.Transforms + }.Schedule(_bufferCombiner.TransformAccessArray, handle0); + + var handle2 = new UpdateFastSpringBoneJob { Colliders = _bufferCombiner.Colliders, Joints = _bufferCombiner.Joints, @@ -35,14 +43,14 @@ namespace UniVRM10.FastSpringBones.System Springs = _bufferCombiner.Springs, Transforms = _bufferCombiner.Transforms, DeltaTime = Time.deltaTime, - }.Schedule(_bufferCombiner.Springs.Length, 1, handle); + }.Schedule(_bufferCombiner.Springs.Length, 1, handle1); - handle = new PushTransformJob - { - Transforms = _bufferCombiner.Transforms - }.Schedule(_bufferCombiner.TransformAccessArray, handle); + var handle3 = new PushTransformJob + { + Transforms = _bufferCombiner.Transforms + }.Schedule(_bufferCombiner.TransformAccessArray, handle2); - return handle; + return handle3; } public void Dispose()