# JavaScript 플러그인 설정

> Create a JavaScript plug-in that your Unity project can interact with.

Unity 프로젝트의 JavaScript 플러그인에서 함수를 호출할 수 있습니다. Unity는 Unity 프로젝트에 JavaScript 코드를 추가할 수 있는 두 가지 JavaScript 플러그인 파일 유형을 지원합니다.

* .jslib
* .jspre

**참고**: Unity는 현재 .jslib 및 .jspre 파일에서 [ES5(ECMAScript 5) 구문](https://www.w3schools.com/js/js_es5.asp)을 지원합니다. [ES6 구문](https://www.w3schools.com/js/js_es6.asp)은 아직 지원되지 않습니다.

대신 C++ 플러그인에서 함수를 호출하려면 [Unity C# 스크립트에서 C/C++/C# 함수 호출](/engine/6000.0/manual/platform-specific/webgl/develop/interactingwithbrowserscripting/web-interacting-browsers-c-to-unity.md)을 참조하십시오.

## Unity 프로젝트에 JavaScript 파일 임포트##import-your-javascript-files-into-your-unity-project

프로젝트에서 브라우저 JavaScript를 사용하는 권장 방법은 JavaScript 소스(.jspre 및 .jslib 파일)를 프로젝트에 추가한 다음 Unity C# 스크립트 코드에 해당 함수 또는 라이브러리를 직접 사용하는 것입니다.

`Assets/JSPlugins` 등의 폴더에 JavaScript 플러그인 파일을 넣습니다.

## .jslib 파일 유형에서 함수 호출##call-functions-from-the-.jslib-file-type

Unity C# 또는 네이티브 스크립트의 .jslib 플러그인 파일에서 함수를 호출할 수 있습니다.

.jslib 유형의 파일은 `--js-library` Emscripten 모듈을 사용합니다. 자세한 내용은 [--js-library Emscripten 옵션](https://emscripten.org/docs/tools_reference/emcc.html#emcc-js-library)에 대한 Emscripten 기술 자료를 참조하십시오.

다음 코드는 일부 함수(`Hello`, `HelloString`)를 정의하는 적합한 구문이 있는 .jslib 플러그인 파일의 예를 보여 줍니다.

```js
mergeInto(LibraryManager.library, {

  Hello: function () {
	window.alert("Hello, world!");
  },

  HelloString: function (str) {
	window.alert(UTF8ToString(str));
  },
});
```

그런 다음 Unity C# 코드에서 다음 함수를 호출할 수 있습니다.

```cs
using UnityEngine;
using System.Runtime.InteropServices;

public class NewBehaviourScript : MonoBehaviour {

    [DllImport("__Internal")]
    private static extern void Hello();

    [DllImport("__Internal")]
    private static extern void HelloString(string str);

    void Start() {
        Hello();
        HelloString("This is a string.");
    }
}
```

Unity C# 및 JavaScript 함수 간의 코드 상호 작용에 대한 전체 예시는 [코드 예시: Unity에서 JavaScript 및 C/C++/C# 함수 호출](/engine/6000.0/manual/platform-specific/webgl/develop/interactingwithbrowserscripting/web-interacting-code-example.md)을 참조하십시오.

Unity C#과 JavaScript 간의 상호 작용에 대한 자세한 내용은 [Unity C# 스크립트에서 JavaScript 함수 호출](/engine/6000.0/manual/platform-specific/webgl/develop/interactingwithbrowserscripting/web-interacting-browser-js-to-unity.md#example-unity-code)을 참조하십시오.

## .jspre 파일 유형으로 JavaScript 라이브러리 포함##include-javascript-libraries-with-the-.jspre-file-type

.jspre 플러그인 파일 유형을 사용하여 기존 JavaScript 라이브러리를 JavaScript 코드에 포함합니다. Unity 코드를 사용하여 .jspre 파일과 상호 작용할 수는 없지만 .jslib 코드에서 사용할 수 있습니다.

.jspre 파일 유형은 `--pre-js` Emscripten 옵션을 사용합니다. 자세한 내용은 [--pre-js Emscripten 옵션](https://emscripten.org/docs/tools_reference/emcc.html#emcc-pre-js)에 대한 Emscripten 기술 자료를 참조하십시오.

빌드 프로세스 중에 Emscripten은 `*.framework.js` 파일을 생성하고 .jspre 파일의 내용을 `*.framework.js` 파일의 시작 부분으로 복사합니다. 이 프로세스는 모든 코드를 하나의 파일로 결합하므로 파일 관리가 더 쉬워지고 Emscripten 최적화가 코드에 도움이 되기 때문에 유용합니다.

## 추가 리소스##additional-resources

* [브라우저 스크립팅과 상호 작용](/engine/6000.0/manual/platform-specific/webgl/develop/interactingwithbrowserscripting.md)

* [Unity C# 스트립트에서 JavaScript 함수 호출](/engine/6000.0/manual/platform-specific/webgl/develop/interactingwithbrowserscripting/web-interacting-browser-js-to-unity.md)

* [JavaScript에서 Unity C# 스트립트 함수 호출](/engine/6000.0/manual/platform-specific/webgl/develop/interactingwithbrowserscripting/web-interacting-browser-unity-to-js.md)

* [Unity C# 스크립트에서 C/C++/C# 함수 호출](/engine/6000.0/manual/platform-specific/webgl/develop/interactingwithbrowserscripting/web-interacting-browsers-c-to-unity.md)

* [Unity C#, JavaScript, C/C++/C# 코드 간 콜백 생성](/engine/6000.0/manual/platform-specific/webgl/develop/interactingwithbrowserscripting/web-interacting-browser-example.md)
