BlittableSpanの最適化

This commit is contained in:
AoiKamishiro
2025-06-30 01:10:22 +09:00
parent 4cf52f7b31
commit a447433f5c
3 changed files with 16 additions and 15 deletions

View File

@@ -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;
}
}
}

View File

@@ -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;
}

View File

@@ -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);