찾기
내용으로 건너뛰기
추적
문서의 이전 판을 선택했습니다!
저장하면 이 자료로 새 판을 만듭니다.
미디어 파일
======Unity Project에서 모노(Mono) DLL의 사용====== 일반적으로, 스크립트는 프로젝트 내에서 소스파일로 보관되고 소스가 변경될 때 마다 Unity에 의해 컴파일 됩니다. 하지만, 외부 컴파일러를 사용하여 스크립트를 _dynamically linked library_ (DLL)로 컴파일 하는 것도 역시 가능합니다. 그 결과로 생성되는 DLL은 프로젝트에 추가될 수 있고 그것이 포함하는 클래스는 정상적인 스크립트와 마찬가지로 오브젝트에 부착될 수 있습니다. Unity에서 일반적으로는 스크립트로 작업하는 것이 DLL 보다 훨씬 쉽습니다. 하지만, DLL의 형태로 제공되는 타사의 모노(Mono) 코드로 작업해야 할 경우가 있을 수 있습니다. 자신의 코드를 개발할 때도, Unity가 지원하지 않는 컴파일러(예: F#)을 사용할 경우, 그 코드를 DLL로 컴파일 하여 사용자의 Unity 프로젝트에 추가함으로써 사용 수 도 있을 것 입니다. 또한, Unity 코드를 소스 코드 없이 제공하고 싶을 경우(예:에셋 스토어 제품으로), DLL을 사용하면 손쉽게 해결됩니다. =====DLL의 생성===== DLL을 만들려면, 우선 적당한 컴파일러가 있어야 합니다. .NET 코드를 만들어내는 모든 컴파일러가 Unity와 작동하는 것은 아니므로, 중요한 작업에 들어가기 전에 가지고 있는 코드로 컴파일러를 테스트해 볼 것을 권장합니다. 만일 DLL이 Unity API와 전혀 무관한 코드만 포함한다면, 그러면 사용자는 단순히 적절한 컴파일러 옵션을 사용하여 이를 DLL로 컴파일 할 수 있습니다. 만일 사용자가 Unity API을 사용하고 싶다면, Unity의 DLL을 컴퓨터가 사용할 수 있게 해 주어야 합니다. Mac에서는 이는 프로그램 번들(bundle)에 포함되어 있고(이 번들의 내부 구조를 보고 싶다면, 컨텍스트 메뉴에서 Show Package Contents을 사용합니다; 그 Unity 프로그램을 마우스 오른쪽 버튼으로 클릭하거나 ctrl-click을 합니다):- Unity DLL의 경로는 일반적으로 다음과 같습니다. /Applications/Unity/Unity.app/Contents/Frameworks/Managed/ ...그리고 그 두 개의 DLL은 UnityEngine.dll 과 UnityEditor.dll이라 불립니다. 윈도우에서는, DLL은 Unity 프로그램이 있는 폴더에 함께 위치합니다. C:\Program Files (x86)\Unity\Editor\Data\Managed ... Mac OS에서도 DLL의 이름은 동일합니다. DLL을 컴파일 하는 정확한 옵션은 사용하는 컴퓨터에 따라 달라집니다. 예를 들어, Mono C# 컴파일러의 명령라인인 _mcs_는 Mac OS에서는 다음과 같습니다:- mcs -r:/Applications/Unity/Unity.app/Contents/Frameworks/Managed/UnityEngine.dll -target:library ClassesForDLL.cs 여기서 //-r// 옵션은 빌드에 포함될 라이브러리로 가는 경로로, 이 경우는 UnityEngine 라이브러리 입니다. //-target// 옵션은 어느 타입의 빌드가 필요한지를 명시합니다. "library"란 단어는 DLL 빌드를 선택하기 위하여 사용되었습니다. 마지막으로, 컴파일 해야 하는 소스파일의 이름은 //ClassesForDLL.cs// 입니다(여기서 이 파일은 현재 작업 폴더에 있다고 가정하지만, 필요 시 그 파일의 경로 전체를 명시할 수 있습니다). 모든 것이 잘 진행된다고 가정하면, 결과로서 생기는 DLL 파일은 소스 파일과 같은 폴더에 바로 나타날 것 입니다. =====DLL의 사용===== 일단 컴파일이 되면, DLL 파일은 다른 에셋과 마찬가지고 Unity 프로젝트로 간단하게 드래그 될 수 있습니다. DLL 에셋은 라이브러리 내의 별도의 클래스를 드러내는 데 사용할 수 있는 폴드아웃 트라이앵글(foldout triangle)을 가지고 있습니다. MonoBehaviour에서 파생 된 클래스는 다른 보통 스크립트와 마찬가지고 Game Objects위에 드래그 될 수 있습니다. Non-MonoBehaviour 클래스는 일반적인 방법으로 다른 스크립트에서 직접 사용될 수 있습니다. {{:unity3d:DLLScreenshot.png}}\\ //클래스를 볼 수 있게 펴진 DLL// {{tag>유니티 unity}} * 출처: [[http://unitykoreawiki.com/index.php?n=KrMain.UsingDLL|유니티코리아위키]] (CC BY-NC-SA 2.0)
2+1?
이 필드는 비어 있도록 유지하세요:
저장
미리 보기
취소
편집 요약
참고: 이 문서를 편집하면 내용은 다음 라이선스에 따라 배포하는 데 동의하는 것으로 간주합니다:
CC Attribution-Noncommercial-Share Alike 4.0 International
연결문서
유니티3D ( Unity3D )
문서 도구
문서 보기
이전 판
연결문서
맨 위로
다크 모드로 보기
☀️
Toggle Menu
유니티3D ( Unity3D )
너두 고쳐두 됩니다.
사이트 도구
최근 바뀜
미디어 관리자
사이트맵
사용자 도구
등록
로긴
최근 수정된 문서
misuse_topical5
노박
unique_items
dinner_bell
deputy_beagle
ratslayer
one_for_my_baby
alerio
power_fist
제거됨
fixer
climb_ev_ry_mountain
companion
[장비 분실]
crashed_vertibird
brotherhood_t-51b_power_armor
marco
i_forgot_to_remember_to_forget
cateye