using UnityEngine; public class ExampleWheelController : MonoBehaviour { public float acceleration; public Renderer motionVectorRenderer; // Reference to the custom motion vector renderer Rigidbody m_Rigidbody; static class Uniforms { internal static readonly int _MotionAmount = Shader.PropertyToID("_MotionAmount"); } void Start() { m_Rigidbody = GetComponent(); // Get reference to rigidbody m_Rigidbody.maxAngularVelocity = 100; // Set max velocity for rigidbody } void Update() { if (Input.GetKey (KeyCode.UpArrow)) // Rotate forward m_Rigidbody.AddRelativeTorque(new Vector3(-1 * acceleration, 0, 0), ForceMode.Acceleration); // Add forward torque to mesh else if (Input.GetKey (KeyCode.DownArrow)) // Rotate backward m_Rigidbody.AddRelativeTorque(new Vector3(1 * acceleration, 0, 0), ForceMode.Acceleration); // Add backward torque to mesh float m = -m_Rigidbody.angularVelocity.x / 100; // Calculate multiplier for motion vector texture if (motionVectorRenderer) // If the custom motion vector texture renderer exists motionVectorRenderer.material.SetFloat(Uniforms._MotionAmount, Mathf.Clamp(m, -0.25f, 0.25f)); // Set the multiplier on the renderer's material } }