주목적 : 메타버스 진행하기 전 샘플 테스트
조건 : 멀티플레이 + 화상 + WebGL
기간 : 11.03 ~ 11.25
개발 SDK 선정
멀티플레이 -> https://www.photonengine.com/
화상채팅 -> https://www.agora.io/en/
WebGL이슈
- 매우 낮은 캐릭터 및 지형 폴리곤 사용
- 노멀맵없이 기본맵만 사용
- 유투브 등, 외부링크 연동 -> CORS 문제 발생 -> 내부서버로 연결되게 프록시서버 구축 필요
- Safari에서 WebGL 2.0을 지원하지 않아서 품질저하문제
- 포톤은 WebGL에서 음성 지원이 안됨 -> Agora에서 화상 음성 전부 처리
- 화상및음성은 브라우저 보안 이슈로 HTTPS로 구동시켜야함.
- 한글입력안됨(TextMeshPro를 통해서 한글 폰트생성)
- IME 설정안됨 -> 일본사람이 만든 Asset 사용해서 처리
샘플참조
Agora와 Photon 을 조합한 샘플이 Agora에서 제공되고 있습니다. (WebGL은 제외)
- https://github.com/AgoraIO-Community/agora-unity-partychat-demo
자세한 코드 분석은 위의 소스를 확인합니다.
개발가이드
- Unity용 SDK를 다운로드 받아서 추가합니다.
(https://docs.agora.io/en/All/downloads?platform=Unity)
- 샘플 프로젝트를 다운로드 받습니다.
(https://github.com/AgoraIO-Community/agora-unity-partychat-demo)
- Unity WebGL용을 다운로드 받아서 덮어 씌웁니다.
(https://github.com/AgoraIO-Community/Agora_Unity_WebGL)
- 실제 서비스하기 위해서는 아고라에 가입하고 APP ID 및 토큰을 발급받아서 사용해야 합니다. 그러나 테스트용으로는 해당 프로젝트에서 사용중인 샘플 APP ID로 가능합니다. 대신 채널명을 고유하게 변경하여 다른 사람들과 중복되지 않도록 합니다.
- 샘플프로젝트의 SceneHome 씬을 실행후 GameController 에 APP ID 를 넣는 부분이 있습니다.(기본 샘플 ID가 입력되어 있습니다)
- 빌드 옵션에서 WebGL Template를 agoaTemplate2020 으로 변경합니다.(Unity 2020 버전 기준)
- Asset 폴더내에 WebGL Templates 폴더가 있으면 표시됩니다.
- 이후 WebGL로 빌드를 하고 웹서버에 올려서 테스트를 합니다.
- ※ 화상통신은 HTTPS에서만 가능합니다. 웹서버를 HTTPS로 구성하세요.
Agora - Photon - WebGL 결합하기
- 그냥 프로젝트를 바이킹 프로젝트로 변경후에 실행하면 됩니다.
현재 프로젝트의 구조는
1. 포톤으로 방생성
2. 포톤방 참가 -> 캐릭터 프리팹이 생성됨
3. 캐릭터 프리팹에서 아고라채널 참가
4. 캐릭터 프리팹에서 아고라채널 원격참가자가 들어옴. -> 캐릭터 생성
- photonview.isMine 을 이용해서 현재 프리팹이 플레이어인지 원격 캐릭터인지 판단해서 처리되고 있습니다... 즉 난해합니다. 이해하기 어려워요..
캔버스도 캐릭터마다 달려있고, 화상채팅 대상도 1:1로 구성되어 캔버스에 표시되고 있습니다.
개발시 가장큰 문제점
- 로컬에서 기능테스트 다 해보고 웹에 올리니까 안되는기능 및 알수없는 오류가.. 빵
테스트 : https://152.67.204.190:8090/WebGL/