using System.Collections; using System.Collections.Generic; using UnityEngine; namespace WSMGameStudio.RailroadSystem { /// /// Simulates train suspension (side bearings) by reducing angular velocity transferred from wheels and rails collision to the wagon body /// public class TrainSuspension : MonoBehaviour { private Rigidbody _rigidbody; private Vector3 _angularVelocity; private float _xAngularDamp = 0.8f; private float _yAngularDamp = 1f; private float _zAngularDamp = 0f; /// /// Initialize /// void Start() { _rigidbody = GetComponent(); _angularVelocity = new Vector3(); } /// /// Apply constraints /// void FixedUpdate() { _angularVelocity.x = _rigidbody.angularVelocity.x * _xAngularDamp; _angularVelocity.y = _rigidbody.angularVelocity.y * _yAngularDamp; _angularVelocity.z = _rigidbody.angularVelocity.z * _zAngularDamp; _rigidbody.angularVelocity = _angularVelocity; } } }