Vuforia AR: Управление объектом и компиляция игры

В этом уроке мы научимся управлять объектом (Трампом) за пределами маркера и скомпилируем игру для реального устройства. Код и домашнее задание доступны на сайте itproger.com (ссылка в описании).

Управление объектом с помощью джойстика

Для управления объектом на устройстве используем джойстик. Импортируем пакет Cross Platform Input:

  1. Assets > Import Package > Cross Platform Input
  2. Добавьте весь пакет в проект.

Далее, импортируем элементы управления:

  1. Standard Assets > Cross Platform Input > Mobile > Mobile Single Stick Control
  2. Добавьте Mobile Single Stick Control в проект.
  3. Удалите кнопку прыжка (анимация прыжка отсутствует).
  4. Увеличьте размеры джойстика (Mobile Joystick) вдвое.
  5. Установите Movement Range равным 50.

Добавим компоненты к объекту «Трамп»:

  1. Добавьте компонент Rigidbody.
  2. Снимите галочку Use Gravity (чтобы Трамп не проваливался сквозь маркер).
  3. Добавьте новый C# скрипт (например, TrumpController).

Скрипт TrumpController

Откройте скрипт TrumpController в MonoDevelop или Visual Studio. Удалите ненужные библиотеки и подключите:

using UnityStandardAssets;
using UnityStandardAssets.CrossPlatformInput;

Создадим переменные:

private Rigidbody RB;
[SerializeField] private float Speed = 4f;

В методе Start:

RB = GetComponent<Rigidbody>();

Добавим обработку джойстика:

float x = CrossPlatformInputManager.GetAxis("Horizontal");
float y = CrossPlatformInputManager.GetAxis("Vertical");

Vector3 movement = new Vector3(x, 0, y);
RB.velocity = movement * Speed;

Чтобы Трамп смотрел в направлении движения:

if (x != 0 || y != 0) {
    transform.eulerAngles = new Vector3(0, Mathf.Atan2(x, y) * Mathf.Rad2Deg, 0);
}

Настройка анимаций и их интеграция в скрипт

  1. В папке с анимациями Трампа измените тип анимации (Animation Type) на Legacy для анимаций «стояния» и «хождения».
  2. Переименуйте анимацию «стояния» в Idle и установите Wrap Mode в Loop.
  3. Переименуйте анимацию «хождения» в Walk и установите Wrap Mode в Loop.
  4. На объекте «Трамп» в поле Animations укажите анимации Idle и Walk.

Добавим в скрипт TrumpController переменную для анимации и обработку анимаций:

private Animation anim;

// В методе Start:
anim = GetComponent<Animation>();

// Добавляем проверку и воспроизведение анимаций:
if (x != 0 || y != 0) {
    anim.Play("Walk");
} else {
    anim.Play("Idle");
}

Компиляция игры

Компиляция проекта — важный этап. Для Android:

  1. В Unity Preferences (Edit > Preferences > External Tools) убедитесь, что установлены Android SDK и JDK.
  2. В Player Settings (Edit > Project Settings > Player) в Other Settings установите Bundle Identifier (например, com.yourcompany.yourgame). Важно: без пробелов.
  3. Нажмите Build для создания APK файла.

Для iOS: необходим Xcode. Установите Bundle Identifier в Player Settings. Нажмите Build и запустите полученный проект в Xcode.

Мы создали простую, но забавную игру с дополненной реальностью. На основе полученных знаний можно создавать более сложные проекты, например, добавляя новые функции, такие как изменение скорости движения Трампа.

Что будем искать? Например,программа