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

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

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

第一章

  1. Oculus安装
    a) 新建unity工程
    b) 切换到安卓平台,并打开player setting
    在这里插入图片描述
    d) 添加XR插件(2019.4以上),打开pc和移动的oculus选项,如果你pc装了quest link调试会更方便
    在这里插入图片描述
    在这里插入图片描述
    e) 修改player里other setting符合oculus的要求
    在这里插入图片描述
    在这里插入图片描述
    f) 从商店导入oculus sdk
    在这里插入图片描述
    g) 完成
    第二章
  2. 声网安装
  3. 首先建立unity工程,我是用的是2019.4的版本。
    4在这里插入图片描述
  4. 然后进入Asset Store
  5. 搜索Agora,点进去Agora voice
    在这里插入图片描述
  6. 点击download,然后import
  7. 在这里插入图片描述
  8. 把资源都导入unity
  9. 打开HelloUnity3D工程
  10. 在这里插入图片描述
  11. 在GameController输入APP ID(后面有讲如何注册)
  12. 在这里插入图片描述
  13. 点击运行,下面看到的是工程的UI,文本框是输入房间号,按钮是进入房间
  14. 在这里插入图片描述
  15. 我们可以输入lobby进行简单测试,点击运行,点击加入
  16. 在这里插入图片描述
  17. 我们在另外电脑进入https://webdemo.agora.io/agora-web-showcase/examples/Agora-Custom-VideoSource-Web/网页,输入id和房间号后,两台电脑就可以语音通讯了,放不方便,简不简单?
  18. 在这里插入图片描述
  19. 注册账号,打开声网agora主页https://www.agora.io/cn/ ,点击注册
  20. 在这里插入图片描述
  21. 快速注册后就能使用,不想填这么多可以使用左下微信注册
  22. 点击左边水晶球后,创建一个自己的项目(名字你喜欢),再点击右边小眼睛就可以看到和复制你的APP ID,复制过去unity里就ok,注册的效率非常高
  23. 在这里插入图片描述

第三章
Photon安装
a) 官方商店下载photon sdk
在这里插入图片描述
b) 导入后需要填入photon的appid,具体见注册连接
在这里插入图片描述
c) 这样photon也算安装完成了

第四章
综合运用
a) 思路
i. 主要场景使用的是oculus debug ui的场景
ii. 将声网的菜单做成prefab导入到主场景使用作为登录界面
iii. 将把双手和头(一个方块)做成一个prefab在玩家加载时候自动生成,并连接到玩家自己自身的追踪系统中
b) 开始打开hellounity3d场景,将Canvas和GameController拉下来做成prefab(等下在coulus场景要用)
在这里插入图片描述
c) 打开debug ui场景,把之前的Canvas和GameController拉上来,配置好大小,位置,模式设置成world spcae。
在这里插入图片描述
在这里插入图片描述
d) 下面开始制作角色的头和双手,新建一个cube做头,把customhand的左右手拉
到cube的下面
在这里插入图片描述
在这里插入图片描述
e) 设置cube的属性,大概0.3米大小,给他增加一个photon view脚本,给两个双手也加上photon view,这样他们在网络上也能看到了


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删掉
在这里插入图片描述
i) 开始制作Photon的生成,建立一个PhotonManager空物体,上面挂上图上两个脚本,一个是自动进入房间,一个是加入后自动生成角色(就是方块头和手柄)
在这里插入图片描述
j) 要我们手柄检测到菜单要加上ovrraycaster脚本
在这里插入图片描述
k) 虚拟现实键盘输入不方便先给agora的房间设定一个预设房间号123吧,以后再写键盘输入的
在这里插入图片描述
m) 点击播放按钮,就可以了,photon会自动进入房间,声网点击控制器的A点击JoinChannel可以进去
n) 点击左上菜单,file ->build setting
在这里插入图片描述
o) 把导出的apk安装进oculus quest,运行,完成