using UnityEngine; namespace LE_LevelEditor.Example { public class WheelUpdater : MonoBehaviour { private WheelCollider m_wheel; private Transform m_wheelVisuals; private void Start() { if (base.transform.root.name == "LE_GUI3dObject Preview Instance") { Object.DestroyImmediate(GetComponent()); Object.Destroy(this); } else { Init(); } } private void Init() { m_wheel = GetComponent(); m_wheelVisuals = ((base.transform.childCount <= 0) ? null : base.transform.GetChild(0)); m_wheel.mass = 10f; JointSpring suspensionSpring = m_wheel.suspensionSpring; suspensionSpring.spring = 3000f; suspensionSpring.damper = 450f; m_wheel.suspensionSpring = suspensionSpring; WheelFrictionCurve forwardFriction = m_wheel.forwardFriction; forwardFriction.asymptoteSlip = 0.001f; forwardFriction.extremumSlip = 0.001f; forwardFriction.asymptoteValue = 0.001f; forwardFriction.extremumValue = 0.001f; m_wheel.center = m_wheel.suspensionDistance * Vector3.up; } private void Update() { if (m_wheel != null && m_wheelVisuals != null) { Vector3 pos; Quaternion quat; m_wheel.GetWorldPose(out pos, out quat); m_wheelVisuals.position = pos; m_wheelVisuals.rotation = quat; } } } }