68 lines
2.2 KiB
C#
68 lines
2.2 KiB
C#
using UnityEditor.Animations;
|
|
using UnityEngine;
|
|
|
|
// ReSharper disable once CheckNamespace
|
|
namespace AnimatorAsCode.V1
|
|
{
|
|
public interface IAacDefaultsProvider
|
|
{
|
|
void ConfigureState(AnimatorState state, AnimationClip emptyClip);
|
|
void ConfigureTransition(AnimatorStateTransition transition);
|
|
string ConvertLayerName(string systemName);
|
|
string ConvertLayerNameWithSuffix(string systemName, string suffix);
|
|
Vector2 Grid();
|
|
void ConfigureStateMachine(AnimatorStateMachine stateMachine);
|
|
}
|
|
|
|
public class AacDefaultsProvider : IAacDefaultsProvider
|
|
{
|
|
private readonly bool _writeDefaults;
|
|
|
|
public AacDefaultsProvider(bool writeDefaults = false)
|
|
{
|
|
_writeDefaults = writeDefaults;
|
|
}
|
|
|
|
public virtual void ConfigureState(AnimatorState state, AnimationClip emptyClip)
|
|
{
|
|
state.motion = emptyClip;
|
|
state.writeDefaultValues = _writeDefaults;
|
|
}
|
|
|
|
public virtual void ConfigureTransition(AnimatorStateTransition transition)
|
|
{
|
|
transition.duration = 0;
|
|
transition.hasExitTime = false;
|
|
transition.exitTime = 0;
|
|
transition.hasFixedDuration = true;
|
|
transition.offset = 0;
|
|
transition.interruptionSource = TransitionInterruptionSource.None;
|
|
transition.orderedInterruption = true;
|
|
transition.canTransitionToSelf = false;
|
|
}
|
|
|
|
public virtual string ConvertLayerName(string systemName)
|
|
{
|
|
return systemName;
|
|
}
|
|
|
|
public virtual string ConvertLayerNameWithSuffix(string systemName, string suffix)
|
|
{
|
|
return $"{systemName}__{suffix}";
|
|
}
|
|
|
|
public Vector2 Grid()
|
|
{
|
|
return new Vector2(250, 70);
|
|
}
|
|
|
|
public void ConfigureStateMachine(AnimatorStateMachine stateMachine)
|
|
{
|
|
var grid = Grid();
|
|
stateMachine.anyStatePosition = grid * new Vector2(0, 7);
|
|
stateMachine.entryPosition = grid * new Vector2(0, -1);
|
|
stateMachine.exitPosition = grid * new Vector2(7, -1);
|
|
stateMachine.parentStateMachinePosition = grid * new Vector2(3, -1);
|
|
}
|
|
}
|
|
} |