공유하기 기능 만들기
1. JavaScript의 Navigator: share() API
navigator.share() 메서드는 모바일 기기의 네이티브 공유 기능을 호출할 수 있는 Web API이다. 이 메서드는 보안(HTTPS) 환경에서만 동작하며, 브라우저별 지원 여부가 다르기 때문에 유의해서 사용해야 한다.
가장 유명한 사파리, 크롬 등의 브라우저에서는 동작하지만, 앱 내장 브라우저(ex. 카카오톡 앱에서 링크 클릭 시 나오는 브라우저)에서 지원하지 않는 경우가 있으며, 구버전 브라우저의 경우 지원하지 않는 경우가 있으므로 유의해서 사용해야 한다.
우리 프로젝트에서는 국내 사용자들이 카카오톡에서 공유하는 것을 고려했으므로 카카오 내장 브라우저에서 동작하지 않는 버그가 있었다.
이것의 경우에는 라이브러리를 브라우저에 넣어줘야 하는데, 이걸 일반 기업에서 할 수 있는 스케일이 아니다.
2. Unity WebGL에서 JavaScript 호출: Application.ExternalCall 함수
Application.ExternalCall()를 통해 Unity C# 스크립트에서 브라우저의 JavaScript 함수를 직접 호출할 수 있다.
회사에서 진행하고 있는 프로젝트의 경우 이 기능을 활용해서 만들었다.
여기서 호출하는 함수는 WebGL 빌드 시 index.html에서 정의했다.
3. DLL(.dll) 활용한 공유 함수
C/C++로 기능을 만들어서 .dll파일로 넣어도 된다.
이때
[DllImport("__Internal")]
private static extern void FunctionName(string param);
이런 형식으로 사용하는데 반드시 DllImport를 써줘야 하며, dll 파일의 함수 시그니처를 정확히 일치시켜야 한다.
4. Application.absoluteURL
absoluteURL은 WebGL에서만 사용한 프로퍼티이다. 어떠한 링크이던 현제 페이지의 URL 문자열을 가지고 올 수 있다.
5. Native Share Plugin
만약 모바일 플랫폼만을 타깃으로 한다면 Naitive Share Plugin을 사용하는 것도 좋다. 깃허브에 Unity Naitive Plugin을 완성도 있게 만든 yasirkula 깃허브 플러그인을 쓴다.
https://github.com/yasirkula/UnityNativeShare
GitHub - yasirkula/UnityNativeShare: A Unity plugin to natively share files (images, videos, documents, etc.) and/or plain text
A Unity plugin to natively share files (images, videos, documents, etc.) and/or plain text on Android & iOS - yasirkula/UnityNativeShare
github.com
다른 유용한 Native Plugin이 많으니 알아두면 도움이 될 것이다.
Unity WebGL Build Template
1. 썸네일 이미지 교체
엔진 폴더에서 빌드 템플릿 경로를 찾아 들어가면 특정 템플릿 폴더 안에 thumbnail이라는 이미지가 있다. 이걸 교체하면 빌드 세팅에서 템플릿의 이미지를 바꿔줄 수 있다.
2. Unity WebGL Build index.html
WebGL 플랫폼으로 빌드하면 빌드 폴더 내에 index.html 파일이 생성된다. 이 파일은 웹에서 게임을 실행하기 위한 진입점 역할을 하는데, 윈도우 프로그램으로 치면 .bat파일 같이 실행할 명령어들이 있는 파일이라고 생각하면 된다.
이 파일 안에 C#이 아닌 언어로 함수를 만들어서 유니티에서 호출하는 방법이 있는데, 일반 빌드 템플릿으로 설정해 두면 이 index.html파일을 새롭게 만들어서 덮어 씌운다.
만약 프로그램 안에서 써야 하는 기능이라면, 템플릿을 만든 후에 정의해둬야 한다.
( 25년 2월 1주차 공부 )인턴 하면서 배운 내용을 정리한 것입니다.
틀린 내용이 있다면 말씀해 주세요.

'Unity > 공부' 카테고리의 다른 글
[Unity] Firebase를 이용한 랭킹 시스템 (0) | 2025.02.13 |
---|---|
[Unity] 프로젝트 용량 줄이기 : 텍스처, 모델링 (2) | 2025.01.27 |
[Unity] 프로젝트 용량 줄이기 : 이미지 압축 (0) | 2025.01.22 |
[Unity] Unity에서 딜레이를 주는 방법 (1) | 2024.10.12 |