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.

26 lines
903 B
C#

using UnityEngine.EventSystems;
using UnityEngine;
namespace CnControls
{
public class SensitiveJoystick : SimpleJoystick
{
public AnimationCurve SensitivityCurve = new AnimationCurve(
new Keyframe(0f, 0f, 1f, 1f),
new Keyframe(1f, 1f, 1f, 1f));
public override void OnDrag(PointerEventData eventData)
{
base.OnDrag(eventData);
var linearHorizontalValue = HorizintalAxis.Value;
var linearVecticalValue = VerticalAxis.Value;
var horizontalSign = Mathf.Sign(linearHorizontalValue);
var verticalSign = Mathf.Sign(linearVecticalValue);
HorizintalAxis.Value = horizontalSign * SensitivityCurve.Evaluate(horizontalSign * linearHorizontalValue);
VerticalAxis.Value = verticalSign * SensitivityCurve.Evaluate(verticalSign * linearVecticalValue);
}
}
}