public void Simulation(float _duration, Vector3 _position, float _mass, Vector3 _directionInitial, int _frequency) { simulation = new SimulationObject(_position, _mass, _directionInitial); int iterations = Mathf.RoundToInt(_duration / Time.fixedDeltaTime); List <Vector3> positions = new List <Vector3>(); int frequency = 0; for (int i = 0; i < iterations; i++) { gravityManager.SetForcesToShip(simulation); simulation.Move(); if (frequency == 0) { positions.Add(simulation.GetPosition()); } frequency++; if (frequency == _frequency) { frequency = 0; } } lineRenderer.positionCount = positions.Count; lineRenderer.SetPositions(positions.ToArray()); }
private IEnumerator MoveRoutine() { stop = false; getForces = true; while (!stop) { Move(); gravityManager.SetForcesToShip(this); yield return(new WaitForFixedUpdate()); } getForces = false; }