Итак, у меня есть эта функция, прикрепленная к сфере, и обратная, прикрепленная к другой. Они сфальсифицированы, чтобы испустить след, и игровой объект, вокруг которого они вращаются, является сферой, которая заблокирована в 0,0,0. Это мой код:
float t = 0;
float speed;
float width;
float height;
int cat = 0;
public GameObject orbit; //the object to orbit
// Use this for initialization
void Start()
{
speed = 2;
width = 5;
height = 2;
InvokeRepeating("test", .001f, .009f);
}
void test()
{
t += Time.deltaTime * speed;
Vector3 orbitv = orbit.transform.position;
float inc = .0000000001f;
inc += inc + t;
float angmom = .00001f;
angmom = angmom + t;
float x = orbitv.x + Mathf.Cos(t);
float z = orbitv.z + inc; //+ (Mathf.Cos(t)*Mathf.Sin(t));
float y = orbitv.y + Mathf.Sin(t);
transform.position = new Vector3(x, y, z);
}}
Что делает это:
Вместо того чтобы двигаться исключительно в направлении z, я бы хотел, чтобы они продолжали свое текущее вращение, но по кругу вокруг сферы на 0,0,0, оставаясь на том же уровне y. У кого-нибудь есть идеи, как мне это сделать?
Редактировать: Вот что я пытаюсь сделать: