// handle the physics of the engine void FixedUpdate() { if (playback == null) { return; } float steer = 0; // steering -1.0 .. 1.0 float accel = 0; // accelerating -1.0 .. 1.0 int gear = CurrentGear; if (playbackPos > endPos) { Destroy(gameObject); return; } JCarPoint d = playback.GetHistory(playbackPos++); steer = d.steer; accel = d.accel; gear = d.gear; transform.localPosition = d.pos; transform.localRotation = d.rot; rigidbody.velocity = d.vel; if (gear > CurrentGear) { ShiftUp(); } else if (gear < CurrentGear) { ShiftDown(); } HandleMotor(steer, accel); }
public void Activate(int startStamp, int endStamp) { playbackPos = startStamp; endPos = endStamp; if (playback.IsValid(playbackPos)) { JCarPoint d = playback.GetHistory(playbackPos); transform.localPosition = d.pos; transform.localRotation = d.rot; gameObject.SetActiveRecursively(true); } else { Destroy(gameObject); } }