54 lines
1.5 KiB
C#
54 lines
1.5 KiB
C#
using UnityEngine;
|
|
using UnityEngine.InputSystem;
|
|
|
|
namespace DocCodeSamples.Tests
|
|
{
|
|
internal class GamepadExample : MonoBehaviour
|
|
{
|
|
void Start()
|
|
{
|
|
// Print all connected gamepads
|
|
Debug.Log(string.Join("\n", Gamepad.all));
|
|
}
|
|
|
|
void Update()
|
|
{
|
|
var gamepad = Gamepad.current;
|
|
|
|
// No gamepad connected.
|
|
if (gamepad == null)
|
|
{
|
|
return;
|
|
}
|
|
|
|
// Check if "Button North" was pressed this frame
|
|
if (gamepad.buttonNorth.wasPressedThisFrame)
|
|
{
|
|
Debug.Log("Button North was pressed");
|
|
}
|
|
|
|
// Check if the button control is being continuously actuated and read its value
|
|
if (gamepad.rightTrigger.IsActuated())
|
|
{
|
|
Debug.Log("Right trigger value: " + gamepad.rightTrigger.ReadValue());
|
|
}
|
|
|
|
// Read left stick value and perform some code based on the value
|
|
Vector2 move = gamepad.leftStick.ReadValue();
|
|
{
|
|
// Use the Vector2 move for the game logic here
|
|
}
|
|
|
|
// Creating haptic feedback while "Button South" is pressed and stopping it when released.
|
|
if (gamepad.buttonSouth.wasPressedThisFrame)
|
|
{
|
|
gamepad.SetMotorSpeeds(0.2f, 1.0f);
|
|
}
|
|
else if (gamepad.buttonSouth.wasReleasedThisFrame)
|
|
{
|
|
gamepad.ResetHaptics();
|
|
}
|
|
}
|
|
}
|
|
}
|