From a447433f5c40a1262f97468829d5d4e29567722b Mon Sep 17 00:00:00 2001 From: AoiKamishiro Date: Mon, 30 Jun 2025 01:10:22 +0900 Subject: [PATCH] =?UTF-8?q?BlittableSpan=E3=81=AE=E6=9C=80=E9=81=A9?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SpringBoneJobs/Blittables/BlittableSpan.cs | 15 ++++++++++++--- .../FastSpringBoneConbinedBuffer.cs | 4 ++-- .../InputPorts/FastSpringBoneBuffer.cs | 12 ++---------- 3 files changed, 16 insertions(+), 15 deletions(-) diff --git a/Assets/UniGLTF/Runtime/SpringBoneJobs/Blittables/BlittableSpan.cs b/Assets/UniGLTF/Runtime/SpringBoneJobs/Blittables/BlittableSpan.cs index 425d2a6be..bf7a400ef 100644 --- a/Assets/UniGLTF/Runtime/SpringBoneJobs/Blittables/BlittableSpan.cs +++ b/Assets/UniGLTF/Runtime/SpringBoneJobs/Blittables/BlittableSpan.cs @@ -3,11 +3,20 @@ using System; namespace UniGLTF.SpringBoneJobs.Blittables { [Serializable] - public struct BlittableSpan + public readonly struct BlittableSpan { - public int startIndex; - public int count; + private readonly int _startIndex; + private readonly int _count; + + public int startIndex => _startIndex; + public int count => _count; public int EndIndex => startIndex + count; + + public BlittableSpan(int startIndex, int count) + { + _startIndex = startIndex; + _count = count; + } } } \ No newline at end of file diff --git a/Assets/UniGLTF/Runtime/SpringBoneJobs/FastSpringBoneConbinedBuffer.cs b/Assets/UniGLTF/Runtime/SpringBoneJobs/FastSpringBoneConbinedBuffer.cs index 8e8cc7835..fb65bc910 100644 --- a/Assets/UniGLTF/Runtime/SpringBoneJobs/FastSpringBoneConbinedBuffer.cs +++ b/Assets/UniGLTF/Runtime/SpringBoneJobs/FastSpringBoneConbinedBuffer.cs @@ -249,8 +249,8 @@ namespace UniGLTF.SpringBoneJobs { var spring = SrcSprings[index]; spring.modelIndex = ModelIndex; - spring.colliderSpan.startIndex += CollidersOffset; - spring.logicSpan.startIndex += LogicsOffset; + spring.colliderSpan = new BlittableSpan(spring.colliderSpan.startIndex + CollidersOffset, spring.colliderSpan.count); + spring.logicSpan = new BlittableSpan(spring.logicSpan.startIndex + LogicsOffset, spring.logicSpan.count); spring.transformIndexOffset = TransformOffset; DestSprings[index] = spring; } diff --git a/Assets/UniGLTF/Runtime/SpringBoneJobs/InputPorts/FastSpringBoneBuffer.cs b/Assets/UniGLTF/Runtime/SpringBoneJobs/InputPorts/FastSpringBoneBuffer.cs index a87346731..3c0fddec4 100644 --- a/Assets/UniGLTF/Runtime/SpringBoneJobs/InputPorts/FastSpringBoneBuffer.cs +++ b/Assets/UniGLTF/Runtime/SpringBoneJobs/InputPorts/FastSpringBoneBuffer.cs @@ -69,16 +69,8 @@ namespace UniGLTF.SpringBoneJobs.InputPorts { var blittableSpring = new BlittableSpring { - colliderSpan = new BlittableSpan - { - startIndex = blittableColliders.Count, - count = spring.colliders.Length, - }, - logicSpan = new BlittableSpan - { - startIndex = blittableJoints.Count, - count = spring.joints.Length - 1, - }, + colliderSpan = new BlittableSpan(blittableColliders.Count,spring.colliders.Length), + logicSpan = new BlittableSpan(blittableJoints.Count, spring.joints.Length - 1), centerTransformIndex = Array.IndexOf(Transforms, spring.center), }; blittableSprings.Add(blittableSpring);