Страница 1 из 1

Центрировать позицию дочернего объекта

СообщениеДобавлено: 14 апр 2018, 15:40
nazar79
Нужна помощь в выравнивании объектов по одной оси
Ниже скрин проблемы. Красной стрелкой отмечен нормальный вариант.
Мяч все время крутится. По щелчку в синей области создается объект (квадрат) с координатами курсора. Дальше он движется благодаря movetowards к мячу. При столкновении квадрат становится дочерным к мячу, а если столкнулся с квадратом, то дочерным к нему. Суть вопроса в том, чтоб выровнять квадраты по оси как в варианте с стрелкой. Если вариант с movetowards для движения не совсем хороший, то готов выслушать варианты.
https://vk.com/feed?section=comments&w=wall-21398398_550191 по ссылке можно посмотреть изображение и вариант от пользователя.

Re: Центрировать позицию дочернего объекта

СообщениеДобавлено: 14 апр 2018, 19:40
1max1
transform.localPosition = sqr.transform.up * offset * count;

transform.localPosition - это трансформ нового квадрата прикрепленного к тому с которым столкнулся, sqr - это квадрат-родитель, где sqr.transform.up смотрит в противоположную торону от центра, offset - расстояние(высота квадрата) на которое нужно сместить положение нового квадрата умноженное на количество уже прикрепленных квадратов.

Re: Центрировать позицию дочернего объекта

СообщениеДобавлено: 14 апр 2018, 21:15
nazar79
Или моя система плохая или ошибка в Вашем примере. Оно не корректно смещает объекты. Вообще на вторую сторону переносит

Re: Центрировать позицию дочернего объекта

СообщениеДобавлено: 15 апр 2018, 00:38
1max1
Что такое вторая торона?

Re: Центрировать позицию дочернего объекта

СообщениеДобавлено: 15 апр 2018, 08:01
nazar79
Примерно так оно работает. Красные кубики это уже когда столкнулись 2 кубика
http://vfl.ru/fotos/02ed9a6021377417.html изображение, почему-то не удалось толково загрузить

Re: Центрировать позицию дочернего объекта

СообщениеДобавлено: 15 апр 2018, 08:06
1max1
А ты не мог бы сюда проект свой загрузить, думаю так проще будет)

Re: Центрировать позицию дочернего объекта

СообщениеДобавлено: 15 апр 2018, 09:19
seaman
Синтаксис:
Используется csharp
transform.localPosition = sqr.transform.localPosition  + sqr.transform.up * cubeSize;

Это если кубик не вращается в полете. Ну и изначально его up должен быть направлен от центра шара.

Если эти условия не выполняются можно попробовать получить locarRotation у sqr, удочерить кубик шару и установить у него locarRotation таким же как у sqr. Умозрительно должно помочь, но надо проверять.

Re: Центрировать позицию дочернего объекта

СообщениеДобавлено: 15 апр 2018, 10:07
nazar79
seaman писал(а):
Синтаксис:
Используется csharp
transform.localPosition = sqr.transform.localPosition  + sqr.transform.up * cubeSize;

Это если кубик не вращается в полете. Ну и изначально его up должен быть направлен от центра шара.

Если эти условия не выполняются можно попробовать получить locarRotation у sqr, удочерить кубик шару и установить у него locarRotation таким же как у sqr. Умозрительно должно помочь, но надо проверять.


В том то и дело, что когда кубик стает дочерным он начинаете вращаться вместе с мячом

Re: Центрировать позицию дочернего объекта

СообщениеДобавлено: 15 апр 2018, 19:29
seaman
И что? Он что не должен с ним вращаться?

Re: Центрировать позицию дочернего объекта

СообщениеДобавлено: 15 апр 2018, 19:59
1max1
Думаю он уже решил проблему)

Re: Центрировать позицию дочернего объекта

СообщениеДобавлено: 15 апр 2018, 20:59
nazar79
Ну как я, не совсем я)
Тему можно закрывать благодаря 1max1