Accomodate new VRCAnimatorPlayAudio requirements:
- Nodes need to know the Animator Root, so that relative paths can be resolved during the creation of State behaviours (i.e. Relative path of an AudioSource). - Nodes need to have the ability to create a New Behaviour, even if one already exists.
This commit is contained in:
@@ -121,8 +121,8 @@ namespace AnimatorAsCode.V1
|
||||
|
||||
private readonly HashSet<string> _stateNames;
|
||||
|
||||
internal AacFlStateMachine(AnimatorStateMachine machine, AnimationClip emptyClip, AacBackingAnimator backingAnimator, IAacDefaultsProvider defaultsProvider, AacFlStateMachine parent = null)
|
||||
: base(parent, defaultsProvider)
|
||||
internal AacFlStateMachine(AnimatorStateMachine machine, AnimationClip emptyClip, AacBackingAnimator backingAnimator, IAacDefaultsProvider defaultsProvider, Transform animatorRoot, AacFlStateMachine parent = null)
|
||||
: base(parent, defaultsProvider, animatorRoot)
|
||||
{
|
||||
Machine = machine;
|
||||
_emptyClip = emptyClip;
|
||||
@@ -151,7 +151,7 @@ namespace AnimatorAsCode.V1
|
||||
public AacFlStateMachine NewSubStateMachine(string name, int x, int y)
|
||||
{
|
||||
var stateMachine = AacInternals.NoUndo(Machine, () => Machine.AddStateMachine(EnsureNameIsDeduplicated(name), GridPosition(x, y)));
|
||||
var aacMachine = new AacFlStateMachine(stateMachine, _emptyClip, _backingAnimator, DefaultsProvider, this);
|
||||
var aacMachine = new AacFlStateMachine(stateMachine, _emptyClip, _backingAnimator, DefaultsProvider, AnimatorRoot, this);
|
||||
_defaultsProvider.ConfigureStateMachine(stateMachine);
|
||||
_childNodes.Add(aacMachine);
|
||||
return aacMachine;
|
||||
@@ -191,7 +191,7 @@ namespace AnimatorAsCode.V1
|
||||
{
|
||||
var state = AacInternals.NoUndo(Machine, () => Machine.AddState(EnsureNameIsDeduplicated(name), GridPosition(x, y)));
|
||||
DefaultsProvider.ConfigureState(state, _emptyClip);
|
||||
var aacState = new AacFlState(state, this, DefaultsProvider);
|
||||
var aacState = new AacFlState(state, this, DefaultsProvider, AnimatorRoot);
|
||||
_childNodes.Add(aacState);
|
||||
|
||||
return aacState;
|
||||
@@ -331,6 +331,11 @@ namespace AnimatorAsCode.V1
|
||||
|
||||
return AacInternals.NoUndo(Machine, () => Machine.AddStateMachineBehaviour<TBehaviour>());
|
||||
}
|
||||
|
||||
public override TBehaviour CreateNewBehaviour<TBehaviour>()
|
||||
{
|
||||
return AacInternals.NoUndo(Machine, () => Machine.AddStateMachineBehaviour<TBehaviour>());
|
||||
}
|
||||
}
|
||||
|
||||
public class AacFlState : AacAnimatorNode<AacFlState>
|
||||
@@ -338,7 +343,7 @@ namespace AnimatorAsCode.V1
|
||||
public readonly AnimatorState State;
|
||||
private readonly AnimatorStateMachine _machine;
|
||||
|
||||
public AacFlState(AnimatorState state, AacFlStateMachine parentMachine, IAacDefaultsProvider defaultsProvider) : base(parentMachine, defaultsProvider)
|
||||
public AacFlState(AnimatorState state, AacFlStateMachine parentMachine, IAacDefaultsProvider defaultsProvider, Transform animatorRoot) : base(parentMachine, defaultsProvider, animatorRoot)
|
||||
{
|
||||
State = state;
|
||||
_machine = parentMachine.Machine;
|
||||
@@ -482,6 +487,11 @@ namespace AnimatorAsCode.V1
|
||||
|
||||
return AacInternals.NoUndo(State, () => State.AddStateMachineBehaviour<TBehaviour>());
|
||||
}
|
||||
|
||||
public override TBehaviour CreateNewBehaviour<TBehaviour>()
|
||||
{
|
||||
return AacInternals.NoUndo(State, () => State.AddStateMachineBehaviour<TBehaviour>());
|
||||
}
|
||||
}
|
||||
|
||||
public class AacFlTransition : AacFlNewTransitionContinuation
|
||||
|
||||
Reference in New Issue
Block a user