툴/유니티

유니티 Webgl jslib 사용하기, JS호출하기

스튜디오 오버그래픽스 2021. 9. 3. 07:48

 

https://docs.unity3d.com/kr/2019.4/Manual/webgl-interactingwithbrowserscripting.html

 

WebGL: 브라우저 스크립트와 상호작용 - Unity 매뉴얼

웹용 콘텐츠를 빌드할 때 웹페이지의 다른 요소와 통신해야 할 수 있습니다. 또는 Unity 에디터가 현재 기본적으로 노출하지 않는 웹 API를 사용하여 기능을 구현하고 싶을 수 있습니다. 두 가지

docs.unity3d.com

 

webgl 작업을 하면서 새로운 url주소로 넘어갈 필요가 있었는데

" Application.OpenURL "을 쓰자니 새탭에서 열리고, 몇몇 브라우저에서는 팝업창으로 인식해서 막아버림.

그래서 JS에서 새로운 URL을 여는 함수를 만들고 그 함수를 유니티 webgl에서 호출해야했다.

 

그러려면 jslib를 사용해야함.

 

vs code에서 jslib만들어줌(이름은 그냥 Bridge로 지음)

GoLink라는 함수명으로 만들었고

네이버로 연결하게 되어있음

window.location.replace(link)는 현재 페이지에서 link를 연결지만 덮어씌워서 뒤로가기가 안 됨.

뒤로가기 흔적 남기려면

window.location.href = link 로 써야 됨

새창에서 열려면 window.open이라고 다른 코드 써야 됨

 

유니티 C#에서 jslib에 작성한 GoLink라는 함수를 실행하는 코드

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Runtime.InteropServices;

public class BridgeTest : MonoBehaviour
{
    [DllImport("__Internal")]
    private static extern void GoLink();

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.A))
        {
            GoLink();
        }
    }
}

A키를 누르면 GoLink함수 실행

 

jslib파일은 Unity 프로젝트의 Asset- Plugins에 넣어야 함