툴/유니티

유니티 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에 넣어야함