예제 #1
0
    private void Start()
    {
        var config = _sourceBody.Config;

        Debug.Log(config);
        _body = new EulerBody(config, _sourceBody.State);
    }
예제 #2
0
    private void Start()
    {
        var config = _unityBody.Config;

        _eulerBody = new EulerBody(config, _unityBody.State);

        SimulateOffline();
    }
예제 #3
0
    /* 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;
        }
    }
예제 #4
0
 private void Start()
 {
     _eulerBody = new EulerBody(_simulation.UnityBody.Config, _simulation.UnityBody.State);
 }