使用声网Agora语音Unity SDK在虚拟现实项目快速原型Prototype设计开发中应用

前言
在虚拟现实项目中,语音通讯几乎是必备的功能。在网络中寻找各种unity的sdk时候,我找到一款sdk非常适合,它具有音质好,低延迟,抗掉线能力强,月免费1万分钟等特性,极其适合新手入门。下面我们来讲讲怎么只用几个步骤,快速集成agora语音sdk。

目录
1 oculus安装
2 声网sdk安装
3 Photon安装
4 综合运用

第一章

  1. Oculus安装
    a) 新建unity工程
    b) 切换到安卓平台,并打开player setting
  2. oc 使用声网swift代码_键盘输入

  3. d) 添加XR插件(2019.4以上),打开pc和移动的oculus选项,如果你pc装了quest link调试会更方便
  4. oc 使用声网swift代码_虚拟现实_02


  5. oc 使用声网swift代码_unity_03

  6. e) 修改player里other setting符合oculus的要求
  7. oc 使用声网swift代码_虚拟现实_04


  8. oc 使用声网swift代码_oc 使用声网swift代码_05

  9. f) 从商店导入oculus sdk
  10. oc 使用声网swift代码_键盘输入_06

  11. g) 完成
    第二章
  12. 声网安装
  13. 首先建立unity工程,我是用的是2019.4的版本。
    4
  14. oc 使用声网swift代码_oc 使用声网swift代码_07

  15. 然后进入Asset Store
  16. 搜索Agora,点进去Agora voice
  17. oc 使用声网swift代码_oculus_08

  18. 点击download,然后import
  19. 把资源都导入unity
  20. 打开HelloUnity3D工程
  21. 在GameController输入APP ID(后面有讲如何注册)
  22. 点击运行,下面看到的是工程的UI,文本框是输入房间号,按钮是进入房间
  23. 我们可以输入lobby进行简单测试,点击运行,点击加入
  24. 我们在另外电脑进入https://webdemo.agora.io/agora-web-showcase/examples/Agora-Custom-VideoSource-Web/网页,输入id和房间号后,两台电脑就可以语音通讯了,放不方便,简不简单?
  25. 注册账号,打开声网agora主页https://www.agora.io/cn/ ,点击注册
  26. 快速注册后就能使用,不想填这么多可以使用左下微信注册
  27. 点击左边水晶球后,创建一个自己的项目(名字你喜欢),再点击右边小眼睛就可以看到和复制你的APP ID,复制过去unity里就ok,注册的效率非常高

第三章

Photon安装

a) 官方商店下载photon sdk

oc 使用声网swift代码_oculus_09


b) 导入后需要填入photon的appid,具体见注册连接

oc 使用声网swift代码_oc 使用声网swift代码_10


c) 这样photon也算安装完成了第四章

综合运用

a) 思路

i. 主要场景使用的是oculus debug ui的场景

ii. 将声网的菜单做成prefab导入到主场景使用作为登录界面

iii. 将把双手和头(一个方块)做成一个prefab在玩家加载时候自动生成,并连接到玩家自己自身的追踪系统中

b) 开始打开hellounity3d场景,将Canvas和GameController拉下来做成prefab(等下在coulus场景要用)

oc 使用声网swift代码_oc 使用声网swift代码_11


c) 打开debug ui场景,把之前的Canvas和GameController拉上来,配置好大小,位置,模式设置成world spcae。

oc 使用声网swift代码_oc 使用声网swift代码_12


oc 使用声网swift代码_unity_13


d) 下面开始制作角色的头和双手,新建一个cube做头,把customhand的左右手拉

到cube的下面

oc 使用声网swift代码_unity_14


oc 使用声网swift代码_虚拟现实_15


e) 设置cube的属性,大概0.3米大小,给他增加一个photon view脚本,给两个双手也加上photon view,这样他们在网络上也能看到了

oc 使用声网swift代码_oc 使用声网swift代码_16


f) 写一个脚本,让他生成后自动附着到头和双手的追踪系统上,这样,别人就可以看到移动的你了,脚本挂到cube和左右手上,objname填上

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Photon.Pun;


public class AttachToCamera : MonoBehaviourPun
{ public GameObject cam;
    public string objname;
    
    // Start is called before the first frame update
    void Start()
    {
        if (photonView.IsMine)
        {
            cam = GameObject.Find(objname);
            this.transform.SetPositionAndRotation(cam.transform.position, cam.transform.rotation);
            this.transform.parent = cam.transform;
        }
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}

g) Objname填入CenterEyeAnchor,LeftHandAnchor,RightHandAnchor

h) 把cube拉到Resources文件夹编程prefab,然后把场景的cube删掉

oc 使用声网swift代码_键盘输入_17


i) 开始制作Photon的生成,建立一个PhotonManager空物体,上面挂上图上两个脚本,一个是自动进入房间,一个是加入后自动生成角色(就是方块头和手柄)

oc 使用声网swift代码_键盘输入_18


j) 要我们手柄检测到菜单要加上ovrraycaster脚本

oc 使用声网swift代码_oculus_19


k) 虚拟现实键盘输入不方便先给agora的房间设定一个预设房间号123吧,以后再写键盘输入的

oc 使用声网swift代码_unity_20


m) 点击播放按钮,就可以了,photon会自动进入房间,声网点击控制器的A点击JoinChannel可以进去

n) 点击左上菜单,file ->build setting

oc 使用声网swift代码_oc 使用声网swift代码_21


o) 把导出的apk安装进oculus quest,运行,完成