private void Start() { var config = _sourceBody.Config; Debug.Log(config); _body = new EulerBody(config, _sourceBody.State); }
private void Start() { var config = _unityBody.Config; _eulerBody = new EulerBody(config, _unityBody.State); SimulateOffline(); }
/* Offline Simulation */ public static void SimulateOffline(PlayerSimulationConfig config, EulerBody body, Func <double, PlayerInput> inputSampler, double startTime, double duration, float dt) { int numSteps = Mathf.RoundToInt((float)duration / dt); double time = startTime; // Error is introduced by losing the fraction part of duration/timestep // can be, say, a 1 meter translation difference if moving at 100m/s for (int i = 0; i < numSteps; i++) { var input = inputSampler(time); Simulate(config, body, input); body.Integrate(dt); time += dt; } }
private void Start() { _eulerBody = new EulerBody(_simulation.UnityBody.Config, _simulation.UnityBody.State); }