2013-04-07 3 views
0

В Unity я могу справиться круговое движение вокруг объекта с помощью простогоЕдинство приближения объекта в спиральном движении

transform.RotateAround(GameObject.Find("CubeTest").transform.position, Vector3.up, 20000*Time.deltaTime); 

Однако, я хочу, чтобы объект путешествия в круговое движение, чтобы подойти к этому объекту в то время как на орбите. Не совсем уверен, как это сделать, не прикручивая.

+0

Если я читаю это право, вы можете что-то вроде: Vector3 dir = GameObject.Find ("CubeTest"). Transform.position - transform.position; transform.translate (dir.normalized * Time.deltaTime); Просто не забудьте добавить чек, когда ваш объект находится в пределах N единиц от 'CubeTest' – Jerdak

+0

. Я действительно думаю об этом прямо сейчас. Какое совпадение, но меня это интересует. Я не уверен, как работает RotateAround, но разве ваше решение не будет завершено с помощью LookAt? – Joetjah

+0

О, вполне возможно! Позвольте мне взглянуть на нее позже, когда я вернусь домой. –

ответ

2
GameObject cube = GameObject.Find("CubeTest");  
transform.LookAt(cube.transform); 
transform.Translate(transform.forward * Time.deltaTime * approachSpeed); 
transform.RotateAround(cube.transform.position, Vector3.up,20000*Time.deltaTime); 

Я думаю, что мог бы сделать, как вы хотите? Он постепенно перемещается в сторону точки поворота, затем вращается, что приводит к появлению ухудшающейся орбиты.

+0

То, о чем я тоже думал, хотя я не осмеливаюсь размышлять о функции «RotateAround» без того, чтобы я видел ее в первую очередь. Я не уверен, что вращение объекта влияет на полное вращение ... – Joetjah

+0

t.t моя неопытность с Unity действительно показывает. Благодаря! –

Смежные вопросы