//let the motor force do its stuff private void Accelerate(WheelPair wheelPair) { float currentMotorForce = motorForce * motorInput; wheelPair.colliderLeftWheel.motorTorque = currentMotorForce; wheelPair.colliderRightWheel.motorTorque = currentMotorForce; }
private void Steer(WheelPair wheelPair) { float steeringAngle = maxSteerAngle * steeringInput; wheelPair.colliderLeftWheel.steerAngle = steeringAngle; wheelPair.colliderRightWheel.steerAngle = steeringAngle; }
public void UpdateWheel(WheelPair wheelPair) { Quaternion rot; Vector3 pos; wheelPair.leftWheel.GetWorldPose(out pos, out rot); wheelPair.leftWheelMesh.transform.position = pos; wheelPair.leftWheelMesh.transform.rotation = rot; wheelPair.rightWheel.GetWorldPose(out pos, out rot); wheelPair.rightWheelMesh.transform.position = pos; wheelPair.rightWheelMesh.transform.rotation = rot; }
//rotate the wheel while the car is moving (animation) private void UpdateWheelPairPose(WheelPair wheelPair) { Vector3 lPos = wheelPair.transformLeftWheel.position; Vector3 rPos = wheelPair.transformRightWheel.position; Quaternion lQuat = wheelPair.transformLeftWheel.rotation; Quaternion rQuat = wheelPair.transformRightWheel.rotation; wheelPair.colliderLeftWheel.GetWorldPose(out lPos, out lQuat); wheelPair.colliderRightWheel.GetWorldPose(out rPos, out rQuat); wheelPair.transformLeftWheel.position = lPos; wheelPair.transformRightWheel.position = rPos; wheelPair.transformLeftWheel.rotation = lQuat; wheelPair.transformRightWheel.rotation = rQuat; }
public Wheels(GameObject models, GameObject hubs) { this.rear = new WheelPair("Rear", models, hubs); this.front = new WheelPair("Front", models, hubs); }
void Start() { this.pair = this.gameObject.GetParent().GetOnlyComponent <WheelPair>(); this.transform = this.gameObject.GetChild("Mesh").transform; this.collider = this.gameObject.GetOnlyComponent <WheelCollider>(); }
//use brake private void Brake(WheelPair wheelPair) { wheelPair.colliderLeftWheel.brakeTorque = breakInput; wheelPair.colliderRightWheel.brakeTorque = breakInput; }
//at the moment a fixed value .... later with terrain value or something else? private void Decelerate(WheelPair wheelPair) { wheelPair.colliderLeftWheel.brakeTorque = decelerationForce; wheelPair.colliderRightWheel.brakeTorque = decelerationForce; }