2015-08-26 4 views
0

У меня есть игрок, который «упадет» на планету, сферу и будет стоять на ней по вертикали. планета управляет своей собственной гравитацией, где она поворачивает игрока в вертикальном положении, но блокирует ось игроков.unty3d поверните игрока, чтобы стоять на планете

gravity.js скрипт определяет, является ли объект игрок, ударил, и выполняет это на проигрывателе, блокировка вращения игрока:

hit.transform.LookAt(/*hit.transform.position + */transform.position); 
hit.transform.eulerAngles = Vector3(hit.transform.eulerAngles.x - 90, hit.transform.eulerAngles.y, hit.transform.eulerAngles.z); 

как освободить только ось у? не более того.

ответ

0

Не совсем уверен, что вы пытаетесь сделать. Но если gravity.js присоединен к игроку, вы можете сделать следующее:

hit.transform.LookAt(/*hit.transform.position + */transform.position); 
hit.transform.eulerAngles = Vector3(hit.transform.eulerAngles.x - 90, this.transform.eulerAngles.y, hit.transform.eulerAngles.z); 

оси у Углы Эйлера просто устанавливается на то, что в настоящее время. Я не знаю Unitys JavaScript, так что это из моего знания C#. Возможно, вам придется адаптировать его. Возможно, вы захотите прочитать следующее: https://www.reddit.com/r/Unity3D/wiki/faq :) не обижайтесь!

Другой способ сделать то, что вы хотите, чтобы выполнить это тикать ограничение флажков на RigidBody, если ваш игрок имеет один:

Unity3D Rigidbody

+0

хорошо, я не хочу, чтобы блокировать игроков х и г ротацию , но локально блокируйте их соответственно тому, где игрок находится на планете. например, если игрок находится на дне планеты, они должны быть перевернуты, но не препятствовать вращению игрока на ЛОКАЛЬНОЙ оси y. что крайне важно для игры, чтобы даже работать в первую очередь. скажем, игрок находится на стороне планеты, игрок будет стоять на планете, но код, который я дал, блокирует игрока от вращения на локальной оси y. –

+0

Хмм, я не думаю, что это путь. Если вы встаете прямо на планету (трогайте контактную землю, направляйтесь к облакам, не важно, есть ли верхняя или нижняя сторона планеты) направление взгляда слева и справа всегда будет его локальной осью y. Так зачем же блокировать что-нибудь? Вы пытались найти ответы Unity/форумы/google для «Planet Walker» или «Spherical Gravity»? Я нашел много полезных вещей. – Wipster

+0

искали, но использовали разные ключевые слова. Я попробую их, поскольку они кажутся гораздо более перспективными, чем те, которые я использовал раньше. Спасибо! @Wipster –