Vivox SDK Test

유니티가 Vivox 를 인수했다.

Vivox는 블리자드의 오버워치 등의 유명 게임에서 사용하는 음성채팅 모듈을 제공하는 업체다.

Vivox 서비스 등록

개발자 사이트(https://developer.vivox.com/) 에서 계정을 등록하고 사용을 허가 받으면 SDK를 테스트할 수 있다.

Screenshot_022420_111500_AM.jpg

서비스 포탈에 접근하게 되면, 앱을 생성할 수 있다. 생성할 때는 사용할 대상 플랫폼을 지정할 수 있다. 최신 SDK를 다운로드 할 수 있는데, Unity 버전은 모두 같은 내용의 파일을 다운로드한다.  이 파일은 유니티 내 Asset Store 의 Vivox SDK 와 같은 파일이다.

 

유니티에서

Vivox 서비스가 준비가 되면, 유니티에서 관련 Asset을 설치할 수 있다.  Asset Store 창에서 Vivox를 검색해서 Vivox Voice And Text Chat 항목을 선택해서 Import 한다.

Screenshot_022420_112314_AM.jpg

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.

 

 

 

 

Xcode 에서 com.apple.CoreSimulator.SimRuntime.iOS-12-4 오류 발생시

Xcode에서 com.apple.CoreSimulator.SimRuntime.iOS-12-4 라고 에러가 났어.

원인은 잘 모르지만, Xcode 가 업데이트가 제대로 안된 상태일 수도 있을 거 같음.

 

해결방법을 찾아보니, ‘Reboot’

(https://forums.deve1loper.apple.com/thread/120250)

 

해결됨.

 

 

새로운 Asset Type 생성

새로운 타입의 Asset 을 만들고 싶다.

Project Window 에서 t:XXXXXX 형식으로 쓰고싶다.

 

아래 코드는 ElgarProfile 이라는 Asset 타입을 생성한다.

[CreateAssetMenu(fileName = "NewAssetElgarProfile", menuName = "MyAsset/New Elgar Profile", order = 0)]
public class ElgarProfile : ScriptableObject
{
        public int m_Property;
}

 

Project 창에서 Create 메뉴에서 MyAsset / New Elgar Profile 항목을 선택해서 항목을 만들 수 있다.

Project 창 검색 필드에서  t:ElgarProfile 를 입력해서 찾을 수 있다.