수동 설치
요약
이 튜토리얼에서는 유니티가 설치된 곳에서 썬더 라이브러리를 수동으로 설치하고 제거하는 방법을 학습할 것 입니다. 일반적인 경우에서는, 썬더는 패키지 내부에 있는 간단한 마법사를 사용하여 설치할 수 있습니다. 이 마법사는 라이브러리의 존재여부를 확인하고 설치 또는 필요시 업데이트를 합니다. 이 설치 스크립트는 유니티 에디터를 실행할 때 마다 수행 됩니다.
Unet 코드
UNet의 핵심 코드는 <unity folder>/UnityExtensions/Unity/Networking
의 3개 DLL에 존재합니다:
Editor/UnityEditor.Networking.dll
Standalone/UnityEngine.Networking.dll
UnityEngine.Networking.dll
위 파일들은 유니티에 확장 플러그인을 나타내고 멀티플리이어 게임 구축에 사용되는 모든 네크워킹 기능을 추가합니다. 이 라이브러리의 소스 코드는 여기에 있습니다.
썬더 패키지
에셋 스토어에서 썬더를 다운로드한 후, 현재 프로젝트에 몇 개의 파일들이 추가될 것 입니다. 이 라이브러리가 잘 동작하기 위해서, 원시 Unet의 일부 코드를 갱신/변경하여 Photon 네트워크와 잘 결합되도록 해야할 필요가 있습니다.
프로젝트내의 네트워킹 라이브러리의 버전은 Assets/PhotonThunderPackage/Networking
을 확인하여 알 수 있습니다. 알고계시겠지만, 프로젝트에 있는 모든 DLL 파일들은 이러한 파일들을 플러그인으로 취급하여 유니티 에디터가 자동으로 로드합니다. 이 사유로 인하여 이전에 설치된 네트워킹 코드와 충돌이 되지 않도록 파일들의 확장자가 .thdr
으로 하여 로드 되지 않게 하였습니다.
![photon 썬더 패키지 파일](/docs/img/thunder/manual_install1.png)
수동 설치 과정
설치과정은 원시파일 백업과 변경된 파일 교체로 요약할 수 있습니다. 이렇게 하기 위해서 다음 단계를 따라 합니다:
- 유니티 설치 폴더와 네트워킹 플러그인 DLL을 찾습니다. 즉,
<unity folder>/UnityExtensions/Unity/Networking
을 찾습니다. - 모든 네트워킹 파일을 백업하고 유니티 설치 폴더 외부에 저장하세요:
UnityEngine.Networking.dll
UnityEngine.Networking.dll.mdb
Editor/UnityEditor.Networking.dll
Editor/UnityEditor.Networking.dll.mdb
Standalone/UnityEngine.Networking.dll
Standalone/UnityEngine.Networking.dll.mdb
- 유니티 에디터를 닫습니다. 유니티가 시작시에만 DLL 파일들을 로드하기 때문에 이 작업은 필요합니다.
- 프로젝트에서 썬더 네트워킹 DLL을 동일한 트리 관계를 준수하며 유니티 네트워킹 폴더에 복사합니다. 파일들은 각각
<root>
,Editor
그리고Standalone
내에 있어야 합니다. .thdr
확장자 제거를 위해 파일의 이름을 변경합니다:
.dll.thdr → .dll
.dll.mdb.thdr → .dll.mdb
PhotonThunderVersion.txt
파일을 유니티 설치 내부의 동일한 네트워킹 폴더로 복사합니다. 썬더가 이미 특정 버전으로 설치되어 있다는 것을 표시하기 위해 필요합니다. 이 파일 없이, 유니티 에디터를 다시 오픈할 때, 설치 스크립트가 썬더를 다시 설치하려고 할 것 입니다.
- 파일 소스:
<project>/Assets/PhotonThunderPackage/PhotonThunderVersion.txt
- 파일 목적지:
<unity folder>/UnityExtensions/Unity/Networking/PhotonThunderVersion.txt
- 유니티 에디터를 다시 열면 썬더가 정상적으로 작동하고 있어야 합니다.
수동 삭제 프로세스
유니티 에디터에서 썬더를 제거하려면 다음 단계를 따라 합니다:
- 썬더를 완전하게 제거 하려면, 프로젝트에서 관련된 모든 파일을 삭제합니다:
- 폴더:
<project>/Assets/PhotonThunderPackage
-<project>/Assets/Demo
- 파일:
<project>/Assets/Plugins/Photon3Unity3D.dll
-<project>/Assets/Plugins/Photon3Unity3D.xml
-<project>/Assets/Plugins/Thunder.dll
-<project>/Assets/Plugins/Thunder.dll.mdb
-<project>/Assets/Plugins/ThunderEditor.dll
-<project>/Assets/Plugins/ThunderEditor.dll.mdb
-<project>/Assets/Resources/PhotonThunderConfig.asset
- 유니티 에디터를 닫습니다
<unity folder>/UnityExtensions/Unity/Networking
로 이동합니다.- 다음의 모든 파일들을 삭제합니다:
PhotonThunderVersion.txt
UnityEngine.Networking.dll
UnityEngine.Networking.dll.mdb
Editor/UnityEditor.Networking.dll
Editor/UnityEditor.Networking.dll.mdb
Standalone/UnityEngine.Networking.dll
Standalone/UnityEngine.Networking.dll.mdb
- 이전에 백업해 놓은 모든 저장된 파일들을 올바른 위치로 되돌려 놓습니다.
UnityEngine.Networking.dll[.mdb]
은 동일한 이름을 가지고 있으나 컴파일시에 차이가 있으므로 각별히 주의 해야 합니다. - 유니티 에디터를 다시오픈합니다. 썬더 코드가 있는 프로젝트를 오픈한 경우, 라이브러리가 설치되어있지 않은 것을 감지하고 다시 설치하려고 시도할 것 입니다.