AGORA.IO для Единства. В официальном руководстве есть проблема

Итак, я пробовал AGORA.IO с Unity и для начала следил за их блогом на - medium.com и официальным видео на youtube. Если кто-то использовал Agora, не могли бы вы объяснить, для чего они создают КУБ и ЦИЛИНДР? Оба они отображают локальный поток.

И когда приложение запущено и подключены 2 устройства, появляется третий Gameobject, который показывает поток удаленного пользователя. Итого мы получаем 3 игровых объекта, что очень беспорядочно.

Зачем нужно создавать 2 объекта для отображения одного и того же локального потока? Как я могу добавить операции к потоку удаленного пользователя (эффекты камеры и т. Д.)? И изменить его положение?

Спасибо !


person VinMobPro    schedule 04.12.2019    source источник
comment
Можете ли вы добавить код, о котором вы спрашиваете, к своему вопросу?   -  person    schedule 05.12.2019
comment
Не могли бы вы также связать упомянутые вами учебные пособия?   -  person Spencer Stream    schedule 05.12.2019
comment
youtube.com/watch?v=Z3wTBlnEPAg - ссылка на видео   -  person VinMobPro    schedule 09.12.2019
comment
@Amy - Проблема не в коде. Но в пути показана эта реализация SDK. Это очень неорганизованно.   -  person VinMobPro    schedule 09.12.2019


Ответы (1)


Спасибо за ваш отзыв. Я был создателем видеоуроков Medium и YouTube.

Демо-сцены были созданы членом команды инженеров Agora в качестве примера использования SDK Agora и нескольких различных примеров того, как показывать видеопотоки на игровых объектах. Я не могу сказать, почему он решил использовать этот конкретный контент для своей сцены, но следует отметить положительный момент: команда Agora работает над обновленным набором демонстраций, которые предоставляют более актуальные примеры. Мы планируем выпустить эти новые сцены в следующем обновлении Agora Unity SDK.

На данный момент лучшее, что я могу сделать, это внести некоторую ясность в то, как вы можете редактировать эту сцену.

По умолчанию игровой объект с компонентом VideoSurface будет отображать локальный поток, но если вы возьмете ссылку на GameObject и используете .setForUser() и передадите UID (от Agora), вы можете заставить любого пользователя отображаться на учитывая видеоповерхность.

Цель создания нового игрового объекта, когда пользователь присоединяется к каналу, - показать, как программно создать игровой объект, назначить ему поток удаленного пользователя и затем добавить его в сцену.

Что касается замедления локального потока с двумя игровыми объектами, это очень зависит от устройства, которое вы используете.

Что касается эффектов камеры в удаленных потоках, я бы рекомендовал вам применить эти эффекты в локальном потоке, прежде чем отправлять их удаленному пользователю.

Что касается изменения позиции «это», если вы имеете в виду программно сгенерированный GameObject, у вас есть ссылка на него в обратном вызове OnUserJoined.

private void OnUserJoined (uint uid, int elapsed)
    {
        Debug.Log("New user has joined channel with id: " + uid);

        // add remote stream to scene

        // create game object
        GameObject go = GameObject.CreatePrimitive(PrimitiveType.Plane);

Вы можете изменить его положение так же, как и любой другой игровой объект в Unity, используя свойство .transform.position и назначив любое местоположение по своему усмотрению.

person Hermes    schedule 12.12.2019