Files
2026-05-31 14:27:52 -07:00

76 lines
1.9 KiB
C#

using Rukhanka.Toolbox;
using Unity.Collections;
using Unity.Mathematics;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
namespace Rukhanka.WaybackMachine
{
public struct AnimatorControllerStateHistoryData
{
public FixedString32Bytes name;
public int2 frameSpan;
public int layerIndex;
public int stateId;
public uint motionId;
public float weight;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
public AnimatorControllerStateHistoryData(in AnimatorControllerLayerComponent aclc, int stateId, uint motionId, int frameIndex)
{
frameSpan = new (frameIndex, frameIndex);
weight = 1;
this.stateId = stateId;
this.layerIndex = aclc.layerIndex;
this.motionId = motionId;
ref var sb = ref aclc.controller.Value.layers[aclc.layerIndex].states[stateId];
name = default;
#if RUKHANKA_DEBUG_INFO
if (sb.name.Length > 0)
{
sb.name.CopyToWithTruncate(ref name);
}
#endif
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
public string GetName()
{
#if RUKHANKA_DEBUG_INFO
return name.ToString();
#else
return $"{stateId}";
#endif
}
}
//----------------------------------------------------------------------------------------------------------------//
public struct AnimatorControllerTransitionHistoryData
{
public FixedString64Bytes name;
public int2 frameSpan;
public int srcStateId;
public int dstStateId;
public int transitionId;
public int layerIndex;
public float2 weightRange;
public int srcStateDataIndex;
public int dstStateDataIndex;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
public string GetName()
{
#if RUKHANKA_DEBUG_INFO
return name.ToString();
#else
return $"{srcStateId}->{dstStateId}";
#endif
}
}
}