You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Driftology/Assets/Standard Assets/CNControls/Scripts/Controllers/SensitiveJoystick.cs

31 lines
1.0 KiB
C#

2 months ago
using UnityEngine;
using UnityEngine.EventSystems;
2 months ago
namespace CnControls
{
public class SensitiveJoystick : SimpleJoystick
{
public AnimationCurve SensitivityCurve = new AnimationCurve(
new Keyframe(0f, 0f, 1f, 1f),
2 months ago
new Keyframe(1f, 1f, 1f, 1f)
);
2 months ago
public override void OnDrag(PointerEventData eventData)
{
base.OnDrag(eventData);
2 months ago
// Read the raw values
float linearHorizontalValue = HorizontalAxis.Value;
float linearVerticalValue = VerticalAxis.Value;
2 months ago
2 months ago
// Keep the sign for correct direction
float horizontalSign = Mathf.Sign(linearHorizontalValue);
float verticalSign = Mathf.Sign(linearVerticalValue);
2 months ago
2 months ago
// Remap via the curve
HorizontalAxis.Value = horizontalSign * SensitivityCurve.Evaluate(horizontalSign * linearHorizontalValue);
VerticalAxis.Value = verticalSign * SensitivityCurve.Evaluate(verticalSign * linearVerticalValue);
2 months ago
}
}
2 months ago
}