Скрипт управления виртуальным объектом - Разработка системы дополненной реальности с поддержкой распознавания жестов в режиме реального времени
Using UnityEngine;
/// <summary>
/// Скрипт объявляющий VirtualButton interface и
/// определяет soccer ball логику.
/// </summary>
Public class VBSoccerballEventHandler: MonoBehaviour,
IVirtualButtonEventHandler
{
#region PRIVATE_MEMBER_VARIABLES
Private GameObject mSoccerball;
Private bool mIsRolling = false;
Private float mTimeRolling = 0.0f;
Private float mForce = 0.4f;
#endregion // PRIVATE_MEMBER_VARIABLES
#region PUBLIC_METHODS
/// <summary>
/// Вызывается в начальный момент нажатия VirtualButton:
/// </summary>
Public void OnButtonPressed(VirtualButtonBehaviour vb)
{
Debug. Log("OnButtonPressed");
KickSoccerball();
}
/// <summary>
/// Вызывается сразу после отпускания кнопки:
/// </summary>
Public void OnButtonReleased(VirtualButtonBehaviour vb)
{
Debug. Log("OnButtonReleased");
}
#endregion // PUBLIC_METHODS
#region UNTIY_MONOBEHAVIOUR_METHODS
Void Start()
{
// Получаем дескриптор объекта Soccerball
MSoccerball = transform. FindChild("soccerball").gameObject;
// Регестрируем с virtual buttons TrackableBehaviour
VirtualButtonBehaviour vb =
GetComponentInChildren<VirtualButtonBehaviour>();
If (vb)
{
Vb. RegisterEventHandler(this);
}
// Подгонка размеров под метку
MForce *= transform. localScale. x;
}
Void Update()
{
MTimeRolling += Time. deltaTime;
// Замендление шара
If (mIsRolling &;&; mTimeRolling > 1.0f &;&;
MSoccerball. rigidbody. velocity. magnitude < 5)
{
MSoccerball. rigidbody. Sleep();
MIsRolling = false;
}
}
#endregion // UNTIY_MONOBEHAVIOUR_METHODS
#region PRIVATE_METHODS
/// <summary>
/// Толчок мяча в случайном направлении
/// </summary>
Private void KickSoccerball()
{
// Получаем границы метки
Bounds targetBounds = this. collider. bounds;
Rect targetRect = new Rect( - targetBounds. extents. x,
-targetBounds. extents. z,
TargetBounds. size. x,
TargetBounds. size. z);
// Определяем направление толчка с учетом того, что он должен остаться на метке
Vector2 randomDir = new Vector2();
For (int i = 0; i < 20; i++)
{
RandomDir = Random. insideUnitCircle. normalized;
// возвращает позицию мяча
Vector3 pos = mSoccerball. transform. localPosition *
This. transform. localScale. x;
// Оценка конечного положения
Vector2 finalPos = new Vector2(pos. x, pos. z) +
RandomDir * mForce * 1.5f;
If (targetRect. Contains(finalPos))
{
Break;
}
// Направление движения
Vector3 kickDir = new Vector3(randomDir. x, 0, randomDir. y).normalized;
// Вращение мяча в правильном направлении
Vector3 torqueDir = Vector3.Cross(Vector3.up, kickDir).normalized;
MSoccerball. rigidbody. AddForce(kickDir * mForce,
ForceMode. VelocityChange);
MSoccerball. rigidbody. AddTorque(torqueDir * mForce,
ForceMode. VelocityChange);
MIsRolling = true;
MTimeRolling = 0.0f;
}
#endregion // PRIVATE_METHODS
}
Похожие статьи
-
1) Создание маркера Для создания маркера дополненной реальности в составе Vuforia SDK имеется специальный Target Manager (рисунок 16), который...
-
/*==============================================================================Copyright (c) 2010-2013 QUALCOMM Austria Research Center GmbH. All Rights...
-
Хорошо известно, что для качественных AR систем, чтобы предоставить реалистичный результат требуется очень точно отслеживать реальную среду для...
-
Определение дополненной реальности Термин дополненной реальности (augmented reality, AR) предположительно был предложен работавшим на корпорацию Boeing...
-
Основными устройствами, используемым в системах дополненной реальности являются дисплеи, устройства ввода, устройства отслеживания и компьютер. Дисплеи...
-
Человек получает представление об окружающем пространстве с помощью большого набора органов чувств. Система дополненной реальности, являясь посредником...
-
Мультимодальные интерфейсы объединяют реальные формы устройств ввода с натуральными формами языка и поведения, такими как речь, осязание, жесты рукой или...
-
Совместные AR интерфейсы включают в себя использование нескольких дисплеев для поддержки удаленной совместной деятельности. Для создания совместной...
-
Один из наиболее важных аспектов при создании систем дополненной реальности - это создать соответствующий интуитивно понятный интерфейс между...
-
Общая характеристика Для оценки общей возможности распознавания жестов в мобильных АR, сравним стандартные взаимодействия, через сенсорный экран, и тип...
-
Мобильные приложения дополненной реальности чаще всего являются развлекательными, образовательными, навигационными или информационные. Например...
-
Существует достаточно широкий спектр областей науки и техники, в которых может применяться дополненная реальность. Однако в первую очередь можно выделить...
-
Развлекательная и образовательная область включает в себя "культурные" приложения для осмотра достопримечательностей и музейные путеводители, игровые...
-
Хотя существует множество инновационных способов использования дополненной реальности, можно выделить четыре типа приложений, в которых чаще всего...
-
Есть много типов устройств ввода для AR систем. Некоторые системы используют перчатки. Другие, такие как ReachMedia [13] используют беспроводные...
-
Многие исследовательские группы поднимали проблему социально приемлемых технологий. Мобильные системы, постоянно сталкиваются с проблемой социального...
-
В виду популяризации мобильных устройств разного формата (мобильные телефоны, планшеты, электронные книги), необходимо рассмотреть потенциальные угрозы...
-
В рамках выполнения дипломной работы был проведен обзор технологий дополненной реальности, рассмотрены и проанализированы возможные типы взаимодействия...
-
Общие положения Охрана труда - это система законодательных актов, социально-экономических, организационных, технических, гигиенических и...
-
Работа, предусмотренная выполнением производственного заказа, носит инженерный характер и предусматривает работу пользователя с разнообразным программным...
-
Надежность - свойство объекта сохранять во времени в установленных пределах значения всех параметров, характеризующих способность выполнять требуемые...
-
Мобильные системы дополненной реальности включают в себя мобильные приложения для телефонов. Мобильные AR подразумевают использование различных мобильных...
-
Прототип системы разрабатывался для мобильных устройств под управление операционной системы iOS. Для разработки использовался Фреймворк Vuforia SDK и...
-
Таблица 2. Таблица альтернатив и критериев Критерии альтернативы Кроссплатформенность Наличие документации и литературы Поддержка различных языков...
-
Выбор Фреймворка для разработки системы Перед началом разработки необходимо произвести выбор Фреймворка (набора библиотек). Обзор альтернатив OpenCV -...
-
Для того чтобы далее исследовать потенциал использования жестов для систем дополненной реальности, рассмотрим манипуляции виртуальными объектами,...
-
Второй вид взаимодействия использует положения и ориентации устройства (определяется с помощь данных, полученных со встроенного акселерометра и компаса)...
-
Рассмотри несколько видов взаимодействия, которые могли бы решить поставленную задачу. Для простоты рассмотрим взаимодействие с виртуальным объектом...
-
В мобильной дополненной реальности (AR), пользователи смотрят на прямое изображение, полученное с видеокамеры на их мобильном устройстве и сцены, которые...
-
Цель Работы - изучить одну из базовых концепций ООП, наследование классов в С++, заключающуюся в построении цепочек классов, связанных иерархически,...
-
Для участков контура, которые задаются линейной функцией, используем метод линейной интерполяции по ЦДА. А для участков, которые описываются функцией для...
-
Проведем сравнительную оценку напряженность процесса эксплуатации системы в процессе работы. Для этого заполним таблицу 7.2, в которой отражается степень...
-
Особенности функционального назначения Разрабатываемый программный продукт - это модуль вебсайт для системы управлением контентом портала с архивом...
-
Объекты области временного хранения классифицируются по предметным областям. Аутентичность исходным данным Заказчика в объектах DF , TD и R достигается...
-
Цель Работы - изучить приемы создания и использования шаблонов классов. - Теоретические сведения Достаточно часто встречаются классы, объекты которых...
-
Цель Работы - изучить основные способы работы с пользовательским типом данных "класс", его объектами, методами и способы доступа к ним. - Теоретические...
-
Namespace Sklad { Partial class Form1 { /// <summary> /// Required designer variable. /// </summary> Private System. ComponentModel. IContainer...
-
Определение структуры и состава программной системы В программе использованы поля данных, структуры, конструктор, а также методы. Поля данных: - public...
-
Описание разработанных модулей В разработанной программе имеется 5 модулей. Главный модуль "Program. cs" предназначен для запуска главного окна...
-
Диаграмма сущность связь Диаграмма "сущность -- связь" (ER -- модель данных), которая обеспечивает способ определения данных и отношений между ними....
Скрипт управления виртуальным объектом - Разработка системы дополненной реальности с поддержкой распознавания жестов в режиме реального времени