Vuforia + Unity: создание модели в AR при нажатии кнопки пользовательского интерфейса - PullRequest
0 голосов
/ 08 октября 2018

Я знаю, что это действительно простой вопрос, но я не могу понять, как его заархивировать:

У меня есть кнопка пользовательского интерфейса в моей сцене, и я хочу, чтобы Vuforia создавала одну модель AR ТОЛЬКО при нажатиикнопка.

Следуя инструкциям в сети, я смог создать экземпляр модели на экране, когда я касаюсь ее, но мне нужно знать, как настроить Vuforia для архивирования того же результата, только когда я нажимаю кнопку.

Я должен отключить «Поведение прослушивателя с привязкой к входу»?А потом?

Я хочу вызвать PositionContentAtPlaneAnchor, но не могу понять, как правильно вызвать его в поле OnClick кнопки.Мне нужно сделать собственный скрипт для этого?

Спасибо за любой ответ.

1 Ответ

0 голосов
/ 10 октября 2018

Хорошо, извините за задержку.

Я делаю вывод, что вы работаете с наземной плоскостью, если у вас есть Ground Plane Stage и Plane Finder в сцене и работает, мы находимся наХороший вопрос.

Теперь вам нужно только добавить кнопку к сцене, а в скрипт добавить что-то вроде этого:

public PlaneFinderBehaviour plane;

void Start()
{
    ...
    buttonOnTheScene.onClick.AddListener(TaskOnClick);
    ...
}

void TaskOnClick()
{
    Vector2 aPosition = new Vector2(0,0);
    ...
    plane.PerformHitTest(aPosition);
}

Что это значит?

Сначалаиз всего, вы должны переместить Plane Finder из иерархии в переменную сценария, чтобы у нас была ссылка на плоскость в сценарии.

Затем, когда вы нажимаете (или нажимаете) на кнопку, вы имитируете щелчок.(или коснитесь) на дисплее с помощью PerformHitTest.

Если вам интересно, почему мой вопрос в комментарии, это потому, что Plane Finder Behaviour Script имеет два типа режимов: интерактивный и автоматический.Interactive перехватывает нажатие на дисплее и показывает объект (на плоскости земли) в точном положении касания, автоматическое отображение объекта в центре плоскости.

Так что, если вы хотите, чтобы объектв точной позиции вы можете передать позицию Vector2 в PerformHitTest и, если вы хотите показать объект программно или сделать что-то, когда он показывает объект, вы можете вызвать пользовательский метод OnInteractiveHitTest.

Вот и все.

...