Add layer parameter and overrides copying
This commit is contained in:
@@ -78,6 +78,13 @@ namespace AnimatorAsCode.V1
|
|||||||
private readonly AacConfiguration _configuration;
|
private readonly AacConfiguration _configuration;
|
||||||
private readonly string _fullLayerName;
|
private readonly string _fullLayerName;
|
||||||
private readonly AacFlStateMachine _stateMachine;
|
private readonly AacFlStateMachine _stateMachine;
|
||||||
|
|
||||||
|
private readonly List<string> _floatParameters = new List<string>();
|
||||||
|
private readonly List<string> _intParameters = new List<string>();
|
||||||
|
private readonly List<string> _boolParameters = new List<string>();
|
||||||
|
private readonly Dictionary<string, float> _floatOverrides = new Dictionary<string, float>();
|
||||||
|
private readonly Dictionary<string, int> _intOverrides = new Dictionary<string, int>();
|
||||||
|
private readonly Dictionary<string, bool> _boolOverrides = new Dictionary<string, bool>();
|
||||||
|
|
||||||
internal AacFlLayer(AnimatorController animatorController, AacConfiguration configuration, AacFlStateMachine stateMachine, string fullLayerName)
|
internal AacFlLayer(AnimatorController animatorController, AacConfiguration configuration, AacFlStateMachine stateMachine, string fullLayerName)
|
||||||
{
|
{
|
||||||
@@ -138,44 +145,93 @@ namespace AnimatorAsCode.V1
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Create a Bool parameter in the animator.
|
/// Create a Bool parameter in the animator.
|
||||||
public AacFlBoolParameter BoolParameter(string parameterName) => _stateMachine.InternalBackingAnimator().BoolParameter(parameterName);
|
public AacFlBoolParameter BoolParameter(string parameterName)
|
||||||
|
{
|
||||||
|
_boolParameters.Add(parameterName);
|
||||||
|
return _stateMachine.InternalBackingAnimator().BoolParameter(parameterName);
|
||||||
|
}
|
||||||
|
|
||||||
/// Create a Trigger parameter in the animator, but returns a Bool parameter for use in AAC.
|
/// Create a Trigger parameter in the animator, but returns a Bool parameter for use in AAC.
|
||||||
public AacFlBoolParameter TriggerParameterAsBool(string parameterName) => _stateMachine.InternalBackingAnimator().TriggerParameter(parameterName);
|
public AacFlBoolParameter TriggerParameterAsBool(string parameterName)
|
||||||
|
{
|
||||||
|
_boolParameters.Add(parameterName);
|
||||||
|
return _stateMachine.InternalBackingAnimator().TriggerParameter(parameterName);
|
||||||
|
}
|
||||||
|
|
||||||
/// Create a Float parameter in the animator.
|
/// Create a Float parameter in the animator.
|
||||||
public AacFlFloatParameter FloatParameter(string parameterName) => _stateMachine.InternalBackingAnimator().FloatParameter(parameterName);
|
public AacFlFloatParameter FloatParameter(string parameterName)
|
||||||
|
{
|
||||||
|
_floatParameters.Add(parameterName);
|
||||||
|
return _stateMachine.InternalBackingAnimator().FloatParameter(parameterName);
|
||||||
|
}
|
||||||
|
|
||||||
/// Create an Int parameter in the animator.
|
/// Create an Int parameter in the animator.
|
||||||
public AacFlIntParameter IntParameter(string parameterName) => _stateMachine.InternalBackingAnimator().IntParameter(parameterName);
|
public AacFlIntParameter IntParameter(string parameterName)
|
||||||
|
{
|
||||||
|
_intParameters.Add(parameterName);
|
||||||
|
return _stateMachine.InternalBackingAnimator().IntParameter(parameterName);
|
||||||
|
}
|
||||||
|
|
||||||
/// Create multiple Bool parameters in the animator, and returns a group of multiple Bools.
|
/// Create multiple Bool parameters in the animator, and returns a group of multiple Bools.
|
||||||
public AacFlBoolParameterGroup BoolParameters(params string[] parameterNames) => _stateMachine.InternalBackingAnimator().BoolParameters(parameterNames);
|
public AacFlBoolParameterGroup BoolParameters(params string[] parameterNames)
|
||||||
|
{
|
||||||
|
_boolParameters.AddRange(parameterNames);
|
||||||
|
return _stateMachine.InternalBackingAnimator().BoolParameters(parameterNames);
|
||||||
|
}
|
||||||
|
|
||||||
/// Create multiple Trigger parameters in the animator, but returns a group of multiple Bools for use in AAC.
|
/// Create multiple Trigger parameters in the animator, but returns a group of multiple Bools for use in AAC.
|
||||||
public AacFlBoolParameterGroup TriggerParametersAsBools(params string[] parameterNames) => _stateMachine.InternalBackingAnimator().TriggerParameters(parameterNames);
|
public AacFlBoolParameterGroup TriggerParametersAsBools(params string[] parameterNames)
|
||||||
|
{
|
||||||
|
_boolParameters.AddRange(parameterNames);
|
||||||
|
return _stateMachine.InternalBackingAnimator().TriggerParameters(parameterNames);
|
||||||
|
}
|
||||||
|
|
||||||
/// Create multiple Float parameters in the animator, and returns a group of multiple Floats.
|
/// Create multiple Float parameters in the animator, and returns a group of multiple Floats.
|
||||||
public AacFlFloatParameterGroup FloatParameters(params string[] parameterNames) => _stateMachine.InternalBackingAnimator().FloatParameters(parameterNames);
|
public AacFlFloatParameterGroup FloatParameters(params string[] parameterNames)
|
||||||
|
{
|
||||||
|
_floatParameters.AddRange(parameterNames);
|
||||||
|
return _stateMachine.InternalBackingAnimator().FloatParameters(parameterNames);
|
||||||
|
}
|
||||||
|
|
||||||
/// Create multiple Int parameters in the animator, and returns a group of multiple Ints.
|
/// Create multiple Int parameters in the animator, and returns a group of multiple Ints.
|
||||||
public AacFlIntParameterGroup IntParameters(params string[] parameterNames) => _stateMachine.InternalBackingAnimator().IntParameters(parameterNames);
|
public AacFlIntParameterGroup IntParameters(params string[] parameterNames)
|
||||||
|
{
|
||||||
|
_intParameters.AddRange(parameterNames);
|
||||||
|
return _stateMachine.InternalBackingAnimator().IntParameters(parameterNames);
|
||||||
|
}
|
||||||
|
|
||||||
/// Combine multiple Bool parameters into a group.
|
/// Combine multiple Bool parameters into a group.
|
||||||
public AacFlBoolParameterGroup BoolParameters(params AacFlBoolParameter[] parameters) => _stateMachine.InternalBackingAnimator().BoolParameters(parameters);
|
public AacFlBoolParameterGroup BoolParameters(params AacFlBoolParameter[] parameters)
|
||||||
|
{
|
||||||
|
_boolParameters.AddRange(parameters.Select(parameter => parameter.Name));
|
||||||
|
return _stateMachine.InternalBackingAnimator().BoolParameters(parameters);
|
||||||
|
}
|
||||||
|
|
||||||
/// Combine multiple Bool parameters into a group. There is no difference with BoolParameters(...) and is provided only for semantic purposes.
|
/// Combine multiple Bool parameters into a group. There is no difference with BoolParameters(...) and is provided only for semantic purposes.
|
||||||
public AacFlBoolParameterGroup TriggerParametersAsBools(params AacFlBoolParameter[] parameters) => _stateMachine.InternalBackingAnimator().TriggerParameters(parameters);
|
public AacFlBoolParameterGroup TriggerParametersAsBools(params AacFlBoolParameter[] parameters)
|
||||||
|
{
|
||||||
|
_boolParameters.AddRange(parameters.Select(parameter => parameter.Name));
|
||||||
|
return _stateMachine.InternalBackingAnimator().TriggerParameters(parameters);
|
||||||
|
}
|
||||||
|
|
||||||
/// Combine multiple Float parameters into a group.
|
/// Combine multiple Float parameters into a group.
|
||||||
public AacFlFloatParameterGroup FloatParameters(params AacFlFloatParameter[] parameters) => _stateMachine.InternalBackingAnimator().FloatParameters(parameters);
|
public AacFlFloatParameterGroup FloatParameters(params AacFlFloatParameter[] parameters)
|
||||||
|
{
|
||||||
|
_floatParameters.AddRange(parameters.Select(parameter => parameter.Name));
|
||||||
|
return _stateMachine.InternalBackingAnimator().FloatParameters(parameters);
|
||||||
|
}
|
||||||
|
|
||||||
/// Combine multiple Int parameters into a group.
|
/// Combine multiple Int parameters into a group.
|
||||||
public AacFlIntParameterGroup IntParameters(params AacFlIntParameter[] parameters) => _stateMachine.InternalBackingAnimator().IntParameters(parameters);
|
public AacFlIntParameterGroup IntParameters(params AacFlIntParameter[] parameters)
|
||||||
|
{
|
||||||
|
_intParameters.AddRange(parameters.Select(parameter => parameter.Name));
|
||||||
|
return _stateMachine.InternalBackingAnimator().IntParameters(parameters);
|
||||||
|
}
|
||||||
|
|
||||||
/// Set the Bool value of `toBeForced` parameter to `value` in the animator.
|
/// Set the Bool value of `toBeForced` parameter to `value` in the animator.
|
||||||
public AacFlLayer OverrideValue(AacFlBoolParameter toBeForced, bool value)
|
public AacFlLayer OverrideValue(AacFlBoolParameter toBeForced, bool value)
|
||||||
{
|
{
|
||||||
|
_boolOverrides[toBeForced.Name] = value;
|
||||||
var parameters = _animatorController.parameters;
|
var parameters = _animatorController.parameters;
|
||||||
foreach (var param in parameters)
|
foreach (var param in parameters)
|
||||||
{
|
{
|
||||||
@@ -193,6 +249,7 @@ namespace AnimatorAsCode.V1
|
|||||||
/// Set the Float value of `toBeForced` parameter to `value` in the animator.
|
/// Set the Float value of `toBeForced` parameter to `value` in the animator.
|
||||||
public AacFlLayer OverrideValue(AacFlFloatParameter toBeForced, float value)
|
public AacFlLayer OverrideValue(AacFlFloatParameter toBeForced, float value)
|
||||||
{
|
{
|
||||||
|
_floatOverrides[toBeForced.Name] = value;
|
||||||
var parameters = _animatorController.parameters;
|
var parameters = _animatorController.parameters;
|
||||||
foreach (var param in parameters)
|
foreach (var param in parameters)
|
||||||
{
|
{
|
||||||
@@ -210,6 +267,7 @@ namespace AnimatorAsCode.V1
|
|||||||
/// Set the Int value of `toBeForced` parameter to `value` in the animator.
|
/// Set the Int value of `toBeForced` parameter to `value` in the animator.
|
||||||
public AacFlLayer OverrideValue(AacFlIntParameter toBeForced, int value)
|
public AacFlLayer OverrideValue(AacFlIntParameter toBeForced, int value)
|
||||||
{
|
{
|
||||||
|
_intOverrides[toBeForced.Name] = value;
|
||||||
var parameters = _animatorController.parameters;
|
var parameters = _animatorController.parameters;
|
||||||
foreach (var param in parameters)
|
foreach (var param in parameters)
|
||||||
{
|
{
|
||||||
@@ -295,6 +353,28 @@ namespace AnimatorAsCode.V1
|
|||||||
{
|
{
|
||||||
return _stateMachine;
|
return _stateMachine;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Copy all created parameters to the other layer, and overrides it with a value if a value was stored.
|
||||||
|
public AacFlLayer CopyParametersAndOverridesTo(AacFlLayer otherLayer)
|
||||||
|
{
|
||||||
|
foreach (var key in _floatParameters)
|
||||||
|
{
|
||||||
|
var param = otherLayer.FloatParameter(key);
|
||||||
|
if (_floatOverrides.TryGetValue(key, out var value)) otherLayer.OverrideValue(param, value);
|
||||||
|
}
|
||||||
|
foreach (var key in _intParameters)
|
||||||
|
{
|
||||||
|
var param = otherLayer.IntParameter(key);
|
||||||
|
if (_intOverrides.TryGetValue(key, out var value)) otherLayer.OverrideValue(param, value);
|
||||||
|
}
|
||||||
|
foreach (var key in _boolParameters)
|
||||||
|
{
|
||||||
|
var param = otherLayer.BoolParameter(key);
|
||||||
|
if (_boolOverrides.TryGetValue(key, out var value)) otherLayer.OverrideValue(param, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
return this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class AacFlBase
|
public class AacFlBase
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
{
|
{
|
||||||
"name": "dev.hai-vr.animator-as-code.v1",
|
"name": "dev.hai-vr.animator-as-code.v1",
|
||||||
"displayName": "Animator As Code",
|
"displayName": "Animator As Code (Alpha)",
|
||||||
"version": "1.0.9907",
|
"version": "1.0.9912",
|
||||||
"unity": "2019.4",
|
"unity": "2019.4",
|
||||||
"description": "Animator As Code",
|
"description": "Base Animator As Code library. This library only requires Unity.",
|
||||||
"vrchatVersion" : "2022.1.1",
|
"vrchatVersion" : "2022.1.1",
|
||||||
"author" : {
|
"author" : {
|
||||||
"name" : "Haï~"
|
"name" : "Haï~"
|
||||||
|
|||||||
Reference in New Issue
Block a user