Создание составного объекта
C помощью Varwin SDK можно создавать объекты разной вложенности (один объект может содержать в своей иерархии несколько других Unity-объектов).
- Добавьте на сцену в Unity три куба. Сделайте один куб родительским по отношению к двум другим.
- Уменьшите размеры дочерних кубов и разместите их на поверхности одной из боковых граней родительского куба.
- Выделите родительский объект на сцене, либо в окне иерархии сцены.
- Откройте окно создания Varwin-объекта, нажав Varwin - Create - Object
- В открывшемся окне присвойте объекту следующие свойства:
- Название (Object Class Name)
- Поддержку мобильной виртуальной реальности (Mobile Ready)
- Информацию об авторе (Author)
- Теги для быстрого поиска объекта (Tags)
- Нажмите кнопку Create, чтобы запустить процесс создания Varwin-объекта.
- В директории созданного Varwin объекта создайте новый C# скрипт, нажав ПКМ - Create - C# Script
- Откройте созданный скрипт в любом редакторе кода
- Сделайте созданный класс наследником интерфейса IUseStartInteractionAware и реализуйте все его методы.
Достаточно реализовать любой из основных интерфейсов взаимодействия с контроллерами. Больше информации о них в нашей статье.
- Создайте событие и подпишитесь на него в методе OneUseStart()
Подробнее о создании блоков "События" вы можете ознакомиться в нашей статье.
- Соберите объект и импортируйте его в Varwin XRMS (Сюда нужно вставить ссылку на статью про билд)
Пример кода
using UnityEngine;
using Varwin;
using Varwin.Public;
// Созданный скрипт для кнопки
public class Button1 : MonoBehaviour, IUseStartInteractionAware
{
// Описание делегата для события
public delegate void SampleEventHandler();
// Событие, которое будет вызвано при нажатии на объект.
[LogicEvent(English: "The first button has started to be used", Russian: "Первая кнопка начала использоваться")]
public event SampleEventHandler sampleFirstEvent;
// Реализация метода из интерфейса IUseStartInteractionAware
// Этот метод будет вызван при нажатии на Varwin-объект
public void OnUseStart(UseInteractionContext context)
{
sampleFirstEvent?.Invoke();
}
}
Пример блока

Пример объекта

