JavaScript
- 객체 기반의 스크립트 프로그래밍 언어이다.
- 이 언어는 웹 브라우저 내에서 주로 사용됨.
- C#언어와 비슷함
📄JSTest.jslib
- Unity Documentation의 예제 중 브라우저 alert에 메시지 띄우는 함수를 구현
- Hello, HelloString 함수를 만들어준다.
- 원하는 해당 링크로 넘어갈 수 있는 함수를 구현
- Golink 함수를 만들어준다.
- window.location.replace(link)는 현재 페이지에서 link를 연결하지만 덮어 씌워지기 때문에 뒤로 가기를 할 수 없다.
- window.open(link)는 새창에서 link를 열어준다.
- window.location.href = link 를 사용하면 현재 페이지에서 해당 link로 연결되며, 뒤로 가기 흔적을 남길 수 있다.
- Golink 함수를 만들어준다.
mergeInto(LibraryManager.library, {
Hello: function () {
window.alert("Hello, world!");
},
HelloString: function (str) {
window.alert(UTF8ToString(str));
},
Golink: function () {
var link = 'http://www.naver.com';
window.location.href = link;
},
});
⭐브라우저 JavaScript를 유니티 프로젝트에 사용하려면 JavaScript 소스의 확장자를 .jslip 로 사용해야 한다.
- . jslip 파일을 Assets 폴더의 “Plugins” 하위폴더에 저장해야 한다.
📄HelloWorldJS.cs
- Dll을 사용하기 위해 System.Runtime.InteropServices 네임스페이스를 적어준다.
- 어트리뷰트 [DllImport(“__Internal”)] 선언으로 XBos 및 iOS와 같은 특정 플랫폼에서 네이티브로 함수연결을 해준다.
- extern 키워드는 다른 소스 파일(외부)에 있는 전역 변수 및 함수를 사용할 때 사용한다.
using UnityEngine;
using System.Runtime.InteropServices;
public class HelloWorldJS : MonoBehaviour
{
[DllImport("__Internal")]
private static extern void Hello();
[DllImport("__Internal")]
private static extern void HelloString(string str);
[DllImport("__Internal")]
private static extern void Golink();
void Update()
{
if(Input.GetKeyDown(KeyCode.A))
{
Hello();
}
if (Input.GetKeyDown(KeyCode.S))
{
HelloString("안녕 자바스크립트");
}
if (Input.GetKeyDown(KeyCode.D))
{
Golink();
}
}
}
💫사용해 보기
- HelloWorldJS.cs 스크립트를 해당 Scene GameObjet에 넣어준다.
- WebGL로 프로젝트를 빌드해 준다.
if(Input.GetKeyDown(KeyCode.A))
Hello();
if(Input.GetKeyDown(KeyCode.B))
HelloString("안녕 자바스크립트");
if(Input.GetKeyDown(KeyCode.D))
Golink();
📒참고 문서
'Unity' 카테고리의 다른 글
[Attribute] RequireComponent (1) | 2024.03.16 |
---|---|
for 문으로 AddListener 이벤트를 등록 시 주의할 점. Closure(클로저) (0) | 2024.02.12 |
SQL Server 설치 및 예제 파일 적용 방법 (0) | 2024.02.12 |
GC : 가비지 콜렉터 (1) | 2024.02.04 |
JavaScript에서 Unity 함수 호출(종료 시점) (0) | 2024.01.14 |