У меня есть игрок, который «упадет» на планету, сферу и будет стоять на ней по вертикали. планета управляет своей собственной гравитацией, где она поворачивает игрока в вертикальном положении, но блокирует ось игроков.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);
как освободить только ось у? не более того.
хорошо, я не хочу, чтобы блокировать игроков х и г ротацию , но локально блокируйте их соответственно тому, где игрок находится на планете. например, если игрок находится на дне планеты, они должны быть перевернуты, но не препятствовать вращению игрока на ЛОКАЛЬНОЙ оси y. что крайне важно для игры, чтобы даже работать в первую очередь. скажем, игрок находится на стороне планеты, игрок будет стоять на планете, но код, который я дал, блокирует игрока от вращения на локальной оси y. –
Хмм, я не думаю, что это путь. Если вы встаете прямо на планету (трогайте контактную землю, направляйтесь к облакам, не важно, есть ли верхняя или нижняя сторона планеты) направление взгляда слева и справа всегда будет его локальной осью y. Так зачем же блокировать что-нибудь? Вы пытались найти ответы Unity/форумы/google для «Planet Walker» или «Spherical Gravity»? Я нашел много полезных вещей. – Wipster
искали, но использовали разные ключевые слова. Я попробую их, поскольку они кажутся гораздо более перспективными, чем те, которые я использовал раньше. Спасибо! @Wipster –