Steam VR touchpad to rotate object

Hi there!

I’m actually developing a system for a car, and I’m trying to remap the wheels’ rotation to the Vive controller’s touch-pad.

First thing I Tried was linking the wheels to an empty object, and parent the touch-pad X and Y with the empty object’s position, but it didn’t work.

Then I tried getting X and Y from the touch-pad and rotate the desired gameObject by passing the value trough gameObject’s rotation.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Touchpad : MonoBehaviour {

    SteamVR_Controller.Device device;
    SteamVR_TrackedObject trackedobj;
    public GameObject wheelL;
    public GameObject wheelR;

    public float multiplier = 30;
    Vector2 touchpad;

    private float sensitivity = 3.5f;

	void Start ()
        trackedobj = GetComponent<SteamVR_TrackedObject>();
        device = SteamVR_Controller.Input((int)trackedobj.index);

	void Update ()
        float tiltAroundX = device.GetAxis(Valve.VR.EVRButtonId.k_EButton_Axis0).x;
        float tiltAroundY = device.GetAxis(Valve.VR.EVRButtonId.k_EButton_Axis0).y;

        if (device.GetTouch(SteamVR_Controller.ButtonMask.Touchpad)) 
            wheelL.transform.Rotate(0, 0, tiltAroundX);

        if (device.GetTouchUp(SteamVR_Controller.ButtonMask.Touchpad))
            wheelL.transform.Rotate(0, 0, 0);

But it accelerates the speed of the rotation, the more you touch the pad to a side, the more fast it rotates, and the rotation doesn’t reset after the touch-pad is released.
Is there any idea of how can the touch-pad’s input be taken to rotate with no acceleration, and reset the object’s rotation on release?

Instead of using

“wheelL.transform.Rotate(0, 0, tiltAroundX);”


“wheelL.transform.localRotation = Quaternion.Euler(0, 0, tiltAroundX);”