【问题标题】:AGORA.IO for Unity. Official tutorial has a problem [closed]AGORA.IO 用于 Unity。官方教程有问题
【发布时间】:2020-03-29 19:12:42
【问题描述】:

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

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

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

谢谢!

【问题讨论】:

  • 您可以将您要询问的代码添加到您的问题中吗?
  • 你能把你提到的教程也链接起来吗?
  • @Amy - 问题不在代码中。但是以这种方式显示了此 SDK 实现。它非常杂乱无章。

标签: agora.io


【解决方案1】:

感谢您的反馈。我是 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 属性并分配您想要的任何位置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-29
    • 2014-11-15
    • 1970-01-01
    • 2012-03-04
    • 2012-02-19
    相关资源
    最近更新 更多