Files
Net.Like.Xue.Tokyo/Packages-Local/Com.Project.B.Unity/CharacterAnimation/AnimancerMixerStateWrapper.cs
2025-06-24 23:49:13 +08:00

61 lines
1.5 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using Animancer;
using BITKit;
using Unity.Mathematics;
using UnityEngine;
using IWrapper = BITKit.IWrapper;
namespace Project.B.Animation
{
public class MixerStateWrapperFloat : IWrapper<float>
{
public MixerStateWrapperFloat(MixerState<float> obj)
{
Obj = obj;
}
private MixerState<float> _mixerState;
public object Obj
{
get => _mixerState;
set => _mixerState = value as MixerState<float>;
}
public Action<float, float> OnValueChanged { get; set; }
public float Value
{
get => _mixerState.Parameter;
set
{
OnValueChanged?.Invoke(_mixerState.Parameter, value);
_mixerState.Parameter = value;
}
}
}
public class MixerStateWrapperFloat2 : IWrapper<float2>
{
public MixerStateWrapperFloat2(MixerState<Vector2> obj)
{
Obj = obj;
}
public object Obj
{
get => _mixerState;
set => _mixerState = value as MixerState<Vector2>;
}
private MixerState<Vector2> _mixerState;
public Action<float2, float2> OnValueChanged { get; set; }
public float2 Value
{
get => _mixerState.Parameter;
set
{
OnValueChanged?.Invoke(_mixerState.Parameter, value);
_mixerState.Parameter = value;
}
}
}
}