| | |
| | | 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<Rigidbody>(); // 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 |
| | | } |
| | | } |
| | | 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<Rigidbody>(); // 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
|
| | | }
|
| | | }
|