Дано 2 объекта с риджибади в 3д пространстве.
у обоих есть скрипт Attractor
Синтаксис:
Используется csharp
// определеяем направление притяжения
Rigidbody rbToAttract = objToAttract.rb;
Vector3 direction = rb.position - rbToAttract.position;
float distance = direction.magnitude;
float eforce = G * (rb.mass * rbToAttract.mass) / Mathf.Pow(distance, 2); // вычисляем силу гравитационного притяжения
force = direction.normalized * eforce; // устанавливаем направление силы куда надо притягивать наш спутник.
rbToAttract.AddForce(force); // бдыщь и тянемся.
Rigidbody rbToAttract = objToAttract.rb;
Vector3 direction = rb.position - rbToAttract.position;
float distance = direction.magnitude;
float eforce = G * (rb.mass * rbToAttract.mass) / Mathf.Pow(distance, 2); // вычисляем силу гравитационного притяжения
force = direction.normalized * eforce; // устанавливаем направление силы куда надо притягивать наш спутник.
rbToAttract.AddForce(force); // бдыщь и тянемся.
и ракета
Синтаксис:
Используется csharp
tr.rotation *= Quaternion.Euler(0f, 0f, inp.z * Time.deltaTime); // поворот по оси Z
//rb.velocity = transform.up * Time.deltaTime * EnginePower;
rb.AddForce(transform.up * Time.deltaTime * EnginePower); // EnginePower величина которая зависит от устанавливаемой мощности двигателей
//rb.velocity = transform.up * Time.deltaTime * EnginePower;
rb.AddForce(transform.up * Time.deltaTime * EnginePower); // EnginePower величина которая зависит от устанавливаемой мощности двигателей
в итоге получается обьект стоит на шаре, который земля, и потихоньку двигается, очень незначительно, но как только доходит до определенного параметра силы, то выстреливает как пуля.
мб я что то не так с прилагаемыми силами не так делаю?
пс. Это не ксп, просто задачи схожие.