示例#1
0
        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());
        }
示例#2
0
        private IEnumerator MoveRoutine()
        {
            stop      = false;
            getForces = true;
            while (!stop)
            {
                Move();
                gravityManager.SetForcesToShip(this);

                yield return(new WaitForFixedUpdate());
            }

            getForces = false;
        }