首页 > 解决方案 > AGORA.IO 用于 Unity。官方教程有问题

问题描述

所以,我在 Unity 上尝试了 AGORA.IO,并开始关注他们在 media.com 上的博客和 youtube 上的官方视频。如果有人用过 Agora,你能解释一下他们为什么要创建一个 CUBE 和一个 CYLINDER 吗?他们都渲染本地流。

当应用程序运行并连接了 2 个设备时,会出现第三个游戏对象,显示远程用户的流。所以我们总共得到了 3 个非常混乱的游戏对象。

什么需要创建 2 个对象来显示相同​​的本地流?如何在远程用户的流上添加操作(相机效果等)?并改变它的位置?

谢谢 !

标签: agora.io

解决方案


感谢您的反馈意见。我是 Medium 和 YouTube 视频教程的创建者。

演示场景是由 Agora 工程团队的成员创建的,作为如何使用 Agora SDK 的示例,以及如何在游戏对象上显示视频流的几个不同示例。我不能说他为什么选择在他的场景中使用这个特定的内容,但积极的一点是,Agora 团队正在开发一组更新的演示,以提供更多相关示例。我们计划在 Agora Unity SDK 的下一次更新中发布这些新场景。

目前,我能做的最好的就是提供一些关于如何编辑这个场景的清晰信息。

默认情况下,带有 VideoSurface 组件的游戏对象将显示本地流,但如果您引用 GameObject 并使用.setForUser()并传递 UID (来自 Agora),您可以让任何用户出现在给定的视频表面上。

当用户加入频道时创建新游戏对象的目的是展示如何以编程方式创建游戏对象,将其分配给远程用户的流,然后将其添加到场景中。

关于两个游戏对象的本地流变慢,这与您使用的设备非常相关。

关于远程流上的相机效果,我建议您在将它们发送给远程用户之前在本地流上制作这些效果。

关于更改“它的”位置,如果您是指以编程方式生成的游戏对象,您可以在 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属性并分配您想要的任何位置。


推荐阅读