54 lines
1.3 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|
|
}
|