Как сымитировать траекторию движения по эллипсу под силой тяжести? Имеется два тела, у одного огромная масса, у другого единичная. Имеется код:using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class force : MonoBehaviour {
public Vector2 force1;
public Rigidbody2D myRigidbody;
public Rigidbody2D myRigidbody2;
public float f12;
public GameObject myObject1;
public GameObject myObject2;
public int nObject;
public float inputX;
public float inputY;
public float inputX2;
public float inputY2;
public float y;
// Use this for initialization
void Start () {
if (nObject == 1) {
myObject1 = GameObject.Find ("Sphere1");
myObject2 = GameObject.Find ("Sphere2");
myRigidbody = myObject1.GetComponent ();
myRigidbody2 = myObject2.GetComponent ();
}
if (nObject == 2) {
myObject1 = GameObject.Find ("Sphere2");
myObject2 = GameObject.Find ("Sphere1");
myRigidbody= myObject1.GetComponent ();
myRigidbody2= myObject2.GetComponent ();
}
}
// Update is called once per frame
void Update () {
}
void FixedUpdate()
{
if (nObject == 1) {
Vector2 ve = new Vector2 ();
ve.y = y;
ve.x = 0;
myRigidbody.AddForce (ve, ForceMode2D.Impulse);
}
Vector2 input = new Vector2 ();
input = myObject1.transform.position;
inputX = input.x;
inputY = input.y;
input = myObject2.transform.position;
inputX2 = 0;
inputY2 = 0;
float r12 = Mathf.Sqrt (Mathf.Pow (inputX2 - inputX, 2) + Mathf.Pow (inputY2 - inputY, 2));
float cosq12 = (inputX2 - inputX) / (r12);
float sinq12 = (inputY2 - inputY) / (r12);
float G = 7 * Mathf.Pow(10,-1);
f12 = (G * myRigidbody.mass * myRigidbody2.mass) * (Mathf.Pow (r12, -2));
force1 = new Vector2 ();
force1.x = f12 * cosq12;
force1.y = f12 * sinq12;
myRigidbody.AddForce(force1,ForceMode2D.Force);
}
}
Если не присваивать маленькому телу ForceMode2D.Impulse, то оно просто притянется к большему(что по-идее и должно быть). Но мне нужно получить вращение вокруг большего по эллипсу. Так что, если прикладываю моментальную силу, шар начинает двигаться по неведомой траектории. То есть сначала вращается в одну сторону, потом в другую, потом притягивается, а затем улетает.
Извиняюсь за данный код сразу) Думаю два варианта: проблема в физике или проблема в методах, которые я использую. Но я гуглил и читал документацию:(

21 Авг 2019 в 06:17
174 +1
0
Ответы
Нет ответов
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 83 683 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир