Интерактивный скрипт позволяет «Hand follow transform», по умолчанию трансформирует прикрепленный объект, игнорируя смещение - PullRequest
0 голосов
/ 25 октября 2019

Мы строим бильярд 3D VR, и мы боремся с Cue-Stick.

Мы стараемся максимально использовать интерактивные сценарии steamVR.

Я прикрепляю кий к руке с помощью

hand.AttachObject(gameObject, GrabTypes.Grip, Hand.AttachmentFlags.VelocityMovement, Pivot.transform);  

Смещение (Pivot.transform здесь важно, потому что мы хотим прикрепить объект к правильному положению (которое определяется повремя выполнения, в зависимости от того, куда пользователь кладет руку при захвате). Поскольку кий-джойстик перемещается с использованием скоростей, а не с помощью родительских функций, позиция захвата не всегда будет на флешке (у флешки есть перетаскивание, столкновение и т. д.). Это довольнонарушение погружения. Чтобы компенсировать эту проблему, скрипт Intractable имеет логическое значение для Hand Follow Transform, которое было бы идеально для исправления этого. К сожалению, Рука теперь переходит к средней точке (началу) Cue, даже если мы взяли его где-то совершенно другое. Он по-прежнему ведет себя так, как и должен, но визуально это очень сбивает с толку.

SteamVR Intractable поддерживает смещение при присоединении, но забывает об этом смещении при позиционировании руки.

Есть что-то, чего мне не хватает? Или это просто не вещь?

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

Как я могу решить эту проблему?

Я попытался вернуться к простому воспитанию руки, но это делает физические взаимодействия между Cue и шариками в стиле фанк. Я также прочитал большую часть сценариев Interactable и Hand, чтобы понять, что происходит, кроме того, что соглашения по именованию клапанов немного повредили мне, но мне не удалось найти способ. Я довольно поражен этим, и я вижу хороший шанс, что я что-то упускаю.

Что, вероятно, возможно, это установить точку присоединения руки в правильное место на Cue, но это преобразование помещено в префаб RightHand (и слева), оно выглядит как очень плохая идеячтобы изменить это преобразование в каждом кадре или добавить его в родительский объект игры Cue.

Есть ли лучший способ?

...