Files
2026-02-21 16:45:37 +08:00

54 lines
1.3 KiB
C#

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<WheelCollider>());
Object.Destroy(this);
}
else
{
Init();
}
}
private void Init()
{
m_wheel = GetComponent<WheelCollider>();
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;
}
}
}
}