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; } } }