Unity

JavaScript에서 Unity 함수 호출(종료 시점)

JiHxxn 2024. 1. 14. 21:17
인터넷 브라우저 종료시점에 유니티 스크립트 함수호출을 해야 한다.

 

 

WebGL templates 추가 -> https://github.com/seleb/Better-Minimal-WebGL-Template

  • Assets 하위 폴더 안에 WebGL 템플릿을 넣어준다 (반응형으로 만들어짐)
    • WebGL templates 파일
  • index 파일을 Visual Studio 및 Notepad++로 열어준다

html 코드를 수정할 수 있는 index.html


1. Unity 엔진 인스턴스화가 성공한 후 이 작업을 수행

- window.onbeforeunload : 인터넷 브라우저가 종료, 새로고침등 페이지에 변경이벤트가 있을 때 발생하는 함수

- SendMessage(씬에 있는 오브젝트 이름, 해당 오브젝트의 함수이름, 파라미터)

📄index.html

유니티가 인스턴스된 후 유니티의 이벤트를 발생시킬 수 있다!

 

window.onbeforeunload = function(e) 
{
	instance.SendMessage("GameObject", "ExitRoom");
						
	var dialogText = "You game has been saved!  Would you like to continue unloading the page?";
	e.returnValue = dialogText;
	return dialogText;
};

 

📄GameObject.cs

public void ExitRoom()
{
    Debug.Log("브라우저를 종료합니다.");
}

💫사용해보기

새로고침 혹은 인터넷 창을 끄려했을 때 이벤트 발동!


📒참고 문서

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

 

브라우저 스크립팅과 상호작용 - Unity 매뉴얼

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

docs.unity3d.com

https://docs.unity3d.com/2023.1/Documentation/Manual/webgl-templates.html

 

Unity - Manual: WebGL templates

Distribution size and code stripping WebGL templates Important: To use the templates feature in WebGLA JavaScript API that renders 2D and 3D graphics in a web browser. The Unity WebGL build option allows Unity to publish content as JavaScript programs whic

docs.unity3d.com

https://mgtul.tistory.com/65

 

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

https://docs.unity3d.com/kr/2019.4/Manual/webgl-interactingwithbrowserscripting.html WebGL: 브라우저 스크립트와 상호작용 - Unity 매뉴얼 웹용 콘텐츠를 빌드할 때 웹페이지의 다른 요소와 통신해야 할 수 있습니다.

mgtul.tistory.com