mirror of
https://github.com/vrm-c/UniVRM.git
synced 2026-07-24 11:40:45 -05:00
ArrayRange
This commit is contained in:
parent
c871f04a1e
commit
c2cab1c68c
|
|
@ -61,7 +61,7 @@ namespace UniVRM10.ClothWarp
|
|||
return Color.gray;
|
||||
}
|
||||
|
||||
public async Task InitializeAsync(Vrm10Instance vrm, IAwaitCaller awaitCaller)
|
||||
public Task InitializeAsync(Vrm10Instance vrm, IAwaitCaller awaitCaller)
|
||||
{
|
||||
_building = true;
|
||||
_vrm = vrm;
|
||||
|
|
@ -115,6 +115,8 @@ namespace UniVRM10.ClothWarp
|
|||
|
||||
_initialized = true;
|
||||
_building = false;
|
||||
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
|
|||
|
|
@ -196,8 +196,11 @@ namespace UniVRM10.ClothWarp.Jobs
|
|||
|
||||
warps.Add(new WarpInfo
|
||||
{
|
||||
StartIndex = start,
|
||||
EndIndex = _transforms.Count,
|
||||
PrticleRange = new ArrayRange
|
||||
{
|
||||
Start = start,
|
||||
End = _transforms.Count,
|
||||
},
|
||||
});
|
||||
|
||||
await awaitCaller.NextFrame();
|
||||
|
|
@ -376,7 +379,7 @@ namespace UniVRM10.ClothWarp.Jobs
|
|||
{
|
||||
foreach (var warp in _warps)
|
||||
{
|
||||
for (int i = warp.StartIndex; i < warp.EndIndex; ++i)
|
||||
for (int i = warp.PrticleRange.Start; i < warp.PrticleRange.End; ++i)
|
||||
{
|
||||
var p = _info[i];
|
||||
var t = _transforms[i];
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ namespace UniVRM10.ClothWarp.Jobs
|
|||
public void Execute(int warpIndex)
|
||||
{
|
||||
var warp = Warps[warpIndex];
|
||||
for (int particleIndex = warp.StartIndex; particleIndex < warp.EndIndex - 1; ++particleIndex)
|
||||
for (int particleIndex = warp.PrticleRange.Start; particleIndex < warp.PrticleRange.End - 1; ++particleIndex)
|
||||
{
|
||||
// 位置を長さで拘束
|
||||
NextPositions[particleIndex + 1] = NextPositions[particleIndex] +
|
||||
|
|
@ -60,7 +60,7 @@ namespace UniVRM10.ClothWarp.Jobs
|
|||
public void Execute(int warpIndex)
|
||||
{
|
||||
var warp = Warps[warpIndex];
|
||||
for (int particleIndex = warp.StartIndex; particleIndex < warp.EndIndex - 1; ++particleIndex)
|
||||
for (int particleIndex = warp.PrticleRange.Start; particleIndex < warp.PrticleRange.End - 1; ++particleIndex)
|
||||
{
|
||||
//回転を適用
|
||||
var p = Info[particleIndex];
|
||||
|
|
|
|||
|
|
@ -1,8 +1,14 @@
|
|||
namespace UniVRM10.ClothWarp.Jobs
|
||||
{
|
||||
public struct ArrayRange
|
||||
{
|
||||
public int Start;
|
||||
public int End;
|
||||
}
|
||||
|
||||
public struct WarpInfo
|
||||
{
|
||||
public int StartIndex;
|
||||
public int EndIndex;
|
||||
public ArrayRange PrticleRange;
|
||||
public ArrayRange ColliderGroupRange;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user