Rasagar/Library/PackageCache/com.unity.visualeffectgraph/Runtime/Utilities/PropertyBinding/Implementation/VFXInputAxisBinder.cs
2024-08-26 23:07:20 +03:00

44 lines
1.4 KiB
C#

using UnityEngine.VFX;
namespace UnityEngine.VFX.Utility
{
[AddComponentMenu("VFX/Property Binders/Input Axis Binder")]
[VFXBinder("Input/Axis")]
class VFXInputAxisBinder : VFXBinderBase
{
public string AxisProperty { get { return (string)m_AxisProperty; } set { m_AxisProperty = value; } }
[VFXPropertyBinding("System.Single"), SerializeField, UnityEngine.Serialization.FormerlySerializedAs("m_AxisParameter")]
protected ExposedProperty m_AxisProperty = "Axis";
public string AxisName = "Horizontal";
public float AccumulateSpeed = 1.0f;
public bool Accumulate = true;
public override bool IsValid(VisualEffect component)
{
return component.HasFloat(m_AxisProperty);
}
public override void UpdateBinding(VisualEffect component)
{
#if ENABLE_LEGACY_INPUT_MANAGER
float axis = Input.GetAxisRaw(AxisName);
if (Accumulate)
{
float value = component.GetFloat(m_AxisProperty);
component.SetFloat(m_AxisProperty, value + (AccumulateSpeed * axis * Time.deltaTime));
}
else
component.SetFloat(m_AxisProperty, axis);
#endif
}
public override string ToString()
{
return string.Format("Input Axis: '{0}' -> {1}", m_AxisProperty, AxisName.ToString());
}
}
}