using System;
using System.Runtime.CompilerServices;
using Unity.Collections.LowLevel.Unsafe;
namespace LitMotion
{
///
/// A structure that holds motion callbacks.
///
public struct MotionCallbackData
{
public byte StateCount;
public bool IsCallbackRunning;
public bool CancelOnError;
public bool SkipValuesDuringDelay;
public object State1;
public object State2;
public object State3;
public object UpdateAction;
public Action OnCompleteAction;
public Action OnCancelAction;
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void InvokeUnsafe(in TValue value) where TValue : unmanaged
{
switch (StateCount)
{
case 0:
UnsafeUtility.As