Example #1
0
    public void AnalyzeTrajectory()
    {
        foreach (var planet in world.allPlanets)
        {
            var delta = transform.position - planet.transform.position;


            if (TrajectoryUtil.CheckCollided(delta, radiusGravity + planet.radiusGravity))
            {
                if (TrajectoryUtil.CheckCollided(delta, radius + planet.radius))
                {
                    OnCollided();
                    return;
                }

                inOrbitAround = planet;
                break;
            }
        }

        var wasAnalyzed = _trajectory.isAnalyzed;

        if (_trajectory.Analyze(inOrbitAround, this))
        {
            if (!wasAnalyzed)
            {
                _savePosition = transform.position;
                _saveVelocity = velocity;
            }
        }
    }