유니티가 Vivox 를 인수했다.
Vivox는 블리자드의 오버워치 등의 유명 게임에서 사용하는 음성채팅 모듈을 제공하는 업체다.
Vivox 서비스 등록
개발자 사이트(https://developer.vivox.com/) 에서 계정을 등록하고 사용을 허가 받으면 SDK를 테스트할 수 있다.

서비스 포탈에 접근하게 되면, 앱을 생성할 수 있다. 생성할 때는 사용할 대상 플랫폼을 지정할 수 있다. 최신 SDK를 다운로드 할 수 있는데, Unity 버전은 모두 같은 내용의 파일을 다운로드한다. 이 파일은 유니티 내 Asset Store 의 Vivox SDK 와 같은 파일이다.
유니티에서
Vivox 서비스가 준비가 되면, 유니티에서 관련 Asset을 설치할 수 있다. Asset Store 창에서 Vivox를 검색해서 Vivox Voice And Text Chat 항목을 선택해서 Import 한다.

Import 가 완료가 되면, Vivox 폴더에 관련 파일들을 확인할 수 있다. Samples 폴더에 TanksUnityGameSample 은 Vivox 를 테스트하는 탱크 게임 샘플이다. 관련 씬을 추가해서 빌드 혹은 Editor 에서 테스트 할 수 있다.
테스트를 위해서는 앞서 Vivox Service 가입시 만들어진 앱의 API 종단점 값, 도메인, 발급자자, 시크릿 키 값을 등록해야한다.
주요 기능을 발췌해 보면
Import 해야할 주요 항목은 아래와 같다.
using VivoxUnity;
using System;
using System.ComponentModel;
LoginSession 등의 Callback 부분에 의해서 System.ComponentModel 의 INotifyPropertyChanged 인터페이스를 사용한다.
샘플 코드중에 안드로이드 플랫폼쪽 관련 코드가 추가되어 있다
#if UNITY_ANDROID && !UNITY_EDITOR
// Initialize the VivoxNative module
AndroidJavaClass unityPlayer = new AndroidJavaClass(“com.unity3d.player.UnityPlayer”);
AndroidJavaObject activity = unityPlayer.GetStatic<AndroidJavaObject>(“currentActivity”);
AndroidJavaObject appContext = activity.Call<AndroidJavaObject>(“getApplicationContext”);
AndroidJavaClass pluginClass = new AndroidJavaClass(“com.vivox.vivoxnative.VivoxNative”);
pluginClass.CallStatic(“init”, appContext);
#endif
일단 이 부분도 사용 시에 고려해야할 거 같다.
주요 클래스
- VivoxUnity.AccountId – 연결할 계정 및 접속 정보를 갖는다.
- VivoxUnity.Client – 연결하는 세션 정보를 갖을 Client
- VivoxUnity.LoginSession – Client 와 AccountId를 이용한 로그인 세션
- VivoxUnity.ChannelId – 채널 식별 정보 (발급자, 채널명, 채널 종류(일반, 위치기반, 에코), 3D 속성)
- VovoxUnity.ChannelSession – Login Session +
ChannelId, GroupId 로 세션 관리
주요 Event
- LoginSession.PropertyChanged – 로그인 세션 상태 변경시
- ChannelSession.PropertyChanged – 채널 상태 변경
- ChannelSession.Participants.AfterKeyAdded – 참가자 추가시
- ChannelSession.Participants.BeforeKeyRemoved – 참가자 제거시
- ChannelSession.Participants.AfterValueUpdate – 참가자 정보 업데이트
- ChannelSession.MessageLog.AfterItemAdded – 채널 채팅 메시지 추가시
- ChannelSession.SessionArchive.AfterItemAdded – The list of session archive messages returned by a BeginSessionArchiveQuery.