mirror of
https://github.com/vrm-c/UniVRM.git
synced 2026-09-30 06:43:21 -05:00
BlittableSpanの最適化
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user