Bolt 업그레이드 하기
다음은 Bolt 를 업그레이드하기 위한 단계적인 절차입니다:
Bolt 1.3으로 업그레이드하기
Photon Bolt v1.3으로 업데이트에는 여러 가지 중요한 변경사항들이 있습니다: 여러 네임스페이스가 변경되고 일부 스크립트의 가시성이 변경되었으며 프리펩에서 누락된 참조가 발생할 수 있습니다. 다음 지침은 이 업데이트의 영향을 최소화하는 것을 목적하며 다음 내용은 유의하십시오.
- 변경 작업을 시작하기 전에 프로젝트에 백업 및/또는 소스 제어 시스템(Git, SVN, Hg)이 있는지 확인하십시오. 이것은 정말 중요한 사항입니다.
- 프로젝트로 새 SDK 버전을 가져오기 전에 업데이트를 위한 프리팹을 준비해야 합니다. v1.3의 변경 내용에 일부 네임스페이스 수정이 포함됨에 따라 일부 컴포넌트가 이동되어 게임 개체에 대한 참조가 누락됩니다. 이러한 이유로 이 작업에 도움이 될 업데이트 스크립트를 작성했습니다.
- 샘플 저장소에서 Bolt 업데이터 스크립트를 다운로드하십시오.
- 프로젝트 내의
Assets/Editor
폴더에 임포트 하십시오. 이렇게 하면 유니티가 스크립트를 로드하고 적절한 메뉴 항목이 포함됩니다. - (
Bolt/Compile Assembly
)를 컴파일 했고 모든 프리팹들이 Bolt 프리팹 데이터베이스(Assets\Photon\PhotonBolt\resources\BoltPrefabDatabase.asset
)에 나열되어 있는지 확인하십시오. Bolt/Utils/Update/Save Prefabs
메뉴에 있는 작업을 실행하세요.Save DONE!
메시지가 있는 로그 메시지를 받아야 합니다.Assets\Photon\PhotonBolt\resources
폴더를 보고,entity_data.json
파일이 있는지 확인하십시오. 이 파일에는BoltEntity
자신을 포함하여 Bolt 엔티티 프리팹의 모든 중요한 설정들이 들어 있으며 예를 들어 Bolt 히트박스 정보도 포함되어 있습니다.- 나중에 사용할 것을 대비하여 이 파일을 다른 장소에 보관하십시오. 매우 중요합니다, 그렇지 않으면 수동으로 설정을 해야 합니다.
- Photon Bolt 관련 폴더를 삭제합니다:
Assets/Photon
;Assets/samples
;Assets/Gizmos
;
- 최신의 [에셋 스토어의 Bolt 패키지]를 다운로드하고 프로젝트에 임포트하십시오;
- 평소와 같이 패키지의 모든 컨텐츠를 임포트 할 수 있습니다.
- Include a 새로운
Scripting Define Symbols
을Project Settings
에 포함하십시오. 이를 통해 다음의 일부 섹션을 사용할 수 있습니다:BOLT_1_3_OR_NEWER
- 다음의 파일들을 백업 또는 소스 형상관리로부터 복구하십시오:
Assets/Photon/PhotonBolt/project.json
: 모든 Bolt 에셋;- SDK v1.3의 새 위치를 반영하기 위해
project.json
에 설명된 직렬화된 데이터에서 올바른 참조를 가져오려면 수동으로 편집해야 하지만 몇 초 정도 걸립니다:- 사용하기 쉬운 에디터로
project.json
파일을 엽니다; Bolt.Compiler.
문자열을Photon.Bolt.Compiler.
로 모두 바꿉니다 - 문장 끝의 마침표도 포함하여 모든 문장을 주의하셔서 교체하세요.- 파일을 저장합니다.
- 사용하기 쉬운 에디터로
- SDK v1.3의 새 위치를 반영하기 위해
Assets/Photon/PhotonBolt/resources/BoltRuntimeSettings.asset
: Bolt 설정.
- 이미 언급한 바와 같이 특정 스크립트의 이름 및 위치에 가장 적합한 여러 네임스페이스가 이동되었습니다. 프로젝트에 손상된 참조가 많다는 것을 알게 될 것입니다. 이 문제를 해결하려면 소스 코드를 수정하여 다음 네임스페이스를 변경해야 합니다:
- 대부분의 클래스들은 이제
Photon.Bolt
네임스페이스 내에 포함되어 있으므로, Bolt 코드가 있는 모든 스크립트에using Photon.Bolt;
를 포함해야 할 것 입니다. - 스크립트에서 다음의 네임스페이스를 제거하십시오:
using Bolt;
using Bolt.Matchmaking;
using Bolt.Photon;
- 직접 참조에서, 스크립트에서 참조의
Photon.Bolt
네임스페이스를 include 했으면Bolt.
부분을 제거할 수 있습니다. 예를 들어:Bolt.GlobalEventListener
를GlobalEventListener
로Bolt.EntityBehaviour
를EntityBehaviour
로Bolt.IProtocolToken
를IProtocolToken
로Bolt.Command
를Command
로Bolt.ScopeMode
를ScopeMode
로Bolt.GlobalTargets
를GlobalTargets
로Bolt.ReliabilityModes
를ReliabilityModes
로
- 자주 사용되는 추가 네임스페이스:
Photon.Bolt.Utils
:BoltLog
등과 같은 유틸리팉 클래스.Photon.Bolt.Collections
:BoltRingBuffer
와 같은 일부 컬렉션의 Bolt 자체 구현 inclue.Photon.Bolt.Matchmaking
: Photon 매치메이킹 API;
- 오류나 참조 누락 없이 프로젝트가 만들어져야 합니다. 프로젝트의 크기에 따라 시간이 걸릴 수 있지만, 모두 가능합니다..
- 대부분의 클래스들은 이제
- 이제 프로젝트가 프리팹 데이터를 다시 설정할 준비가 되었습니다.
- 사용 중인 유니티 버전(특히 2019 LTS 이상)에 따라 스크립트 참조가 누락된 경우 프리팹을 수정하고 다시 저장할 수 없습니다. 이 문제를 해결하려면 먼저 해당 참조를 제거해야 합니다:
Bolt/Utils/Find Missing Scripts
메뉴에서 작업을 실행합니다. 누락된 스크립트 참조가 있는 모든 프리랩 목록이 표시됩니다. 하나씩 하나씩 스크립트를 제거하거나 8.1.2 단계에서 자동화된 방법을 사용할 수 있습니다.- 누락된 참조를 제거하려면
Bolt/Utils/Remove Missing Scripts
에서 작업을 실행하십시오. 이 코드는 프로젝트의 모든 프리팹에서 실행되고 누락된 스크립트 컴포넌트에 대한 모든 참조를 제거합니다. - 8.1.1단계부터 작업을 다시 실행하여 구성 요소가 누락된 사전 프리팹이 없는지 확인할 수 있습니다.
- 단계 2에서 옮겨놓았던
entity_data.json
파일을Assets\Photon\PhotonBolt\resources
로 복사/이동하십시오. Bolt/Utils/Update/Load Prefabs
의 작업을 실행하세요. 이 작업에서는entity_data.json
의 직렬화된 데이터를 읽고 프리팹에 모든 상세 사항을 설정합니다. 다음과 같이 영향을 받은 모든 프리팹의 목록을 볼 수 있습니다:Updating Player (UnityEngine.GameObject)
.- 마지막으로,
Load DONE!
메시지가 표시되며 정상적으로 모든 작업이 완료되었다는 의미입니다.
- 사용 중인 유니티 버전(특히 2019 LTS 이상)에 따라 스크립트 참조가 누락된 경우 프리팹을 수정하고 다시 저장할 수 없습니다. 이 문제를 해결하려면 먼저 해당 참조를 제거해야 합니다:
- Bolt (
Bolt/Compile Assembly
)를 재컴파일하면 완료됩니다.
Bolt 1.2.9 또는 새로운 버전으로 업그레이드하기
- 프로젝트에 백업 및/또는 소스 제어 시스템(Git, SVN, Hg)이 있는지 확인하십시오.
Assets/bolt
와 Bolt 관련 파일을 삭제합니다:Assets/Photon
;Assets/samples
;Assets/Plugins
;
- [에셋 스토어에서 Bolt 패키지]를 다운로드하고 프로젝트에 임포트합니다.
- 다음의 파일들을 복구합니다:
- Bolt v1.2.5 또는 이전 버전에서 업데이트를 하는 경우:
Assets/bolt/project.bytes
또는Assets/bolt/project.xml
;- 이 경우에 있어서
Assets/Photon/PhotonBolt/project.json
파일을 삭제해야 에셋이 JSON 형식으로 변환됩니다.
- Bolt v1.2.7 또는 더 최신 버전에서 업데이트를 하는 경우:
Assets/bolt/project.json
;
Assets/bolt/assemblies/bolt.user.dll
;Assets/bolt/resources/BoltRuntimeSettings.asset
;
- Bolt v1.2.5 또는 이전 버전에서 업데이트를 하는 경우:
- 다음 파일들을 이동합니다:
Assets/bolt/project.json
파일을Assets/Photon/PhotonBolt/project.json
로;Assets/bolt/assemblies/bolt.user.dll
파일을Assets/Photon/PhotonBolt/assemblies/bolt.user.dll
로;Assets/bolt/resources/BoltRuntimeSettings.asset
파일을Assets/Photon/PhotonBolt/resources/BoltRuntimeSettings.asset
로;
Assets/bolt
폴더를 삭제합니다.- 유니티를 종료합니다.
- 유니티를 열고 Bolt를 컴파일합니다:
Bolt/Compile Assembly
메뉴에서 컴파일을 실행합니다.Bolt Assets
창 (Bolt/Assets
메뉴)을 열면, 예상처럼 모든 에셋들이 들어 있어야합니다.
- 마법사 창이 표시되지 않으면,
Bolt/Wizard
메뉴를 통해 창을 엽니다. - 마법사 창에서 다음 단계를 따라합니다:
Photon Cloud
자격증명을 구성합니다.- 모든 원하는 패키지를 설치합니다.
Core
패키지 설치는 이제 더이상 필요하지는 않습니다.
- 문의 사항이 있으시면, Discord 커뮤니티에 문의해주세요.
- Photon Bolt를 사용할 준비가 되었습니다.
Bolt 1.2.0.0 에서 1.2.8로 업그레이드하기
- 변경 작업을 시작하기 전에 프로젝트에 백업 및/또는 소스 제어 시스템(Git, SVN, Hg)이 있는지 확인하십시오.
Assets/bolt
및 Bolt 관련 파일을 삭제합니다:Assets/Photon
;Assets/bolt_samples
;Assets/Plugins/
;
- [에셋 스토어에서 Bolt 패키지]를 다운로드합니다.
- 마법사 창이 나타나지 않으면,
Bolt/Wizard
메뉴에서 엽니다. - 마법사 창에서 다음 단계를 따라 하세요:
Photon Cloud
자격사항을 설정합니다.- 원하는 모든 패키지를 설치합니다. 최소한
Core
패키지는 반드시 설치하셔야 합니다. - 문의 사항이 있으시면 Discord 커뉴니티로 문의해 주세요.
- 유니티를 종료합니다.
- 다음의 파일들을 복구합니다:
- v1.2.5 또는 그 이전 버전으로 업데이트한 경우
Assets/bolt/project.bytes
또는Assets/bolt/project.xml
- 이 경우에는
Assets/bolt/project.json
파일도 삭제해야지만 에셋들이 JSON 형식으로 변환됩니다.
- 이 경우에는
- Bolt v1.2.7 및 더 신규 버전에서 업데이트를 한 경우
Assets/bolt/project.json
Assets/bolt/assemblies/bolt.user.dll
;Assets/bolt/resources/BoltRuntimeSettings.asset
;
- v1.2.5 또는 그 이전 버전으로 업데이트한 경우
- 유니티를 열고 Bolt를 컴파일합니다:
Bolt/Compile Assembly
메뉴에서 컴파일을 실행합니다.Bolt Assets
창 (Bolt/Assets
메뉴)을 열면 , 예상된 모든 에셋들이 나타나야 합니다. 예상대로 나타났으면, 이전의 프로젝트 파일(Assets/bolt/project.bytes
또는Assets/bolt/project.xml
)들을 삭제/제거할 수 있습니다.
- Bolt가 사용할 준비가 되었습니다.
Bolt 에셋 마이그레이션하기
Bolt는 모든 객체, 상태, 명령 및 이벤트를 Assets/bolt/project.json
파일에 저장합니다.
이 파일은 에셋의 모든 정보를 정의하는 JSON 파일일 뿐입니다.
읽을 수는 있지만 이 파일을 직접 수정하지 않도록 주의하시고, 수정할 경우 비직렬화 프로세스가 중단될 수 있습니다.
새 프로젝트로 마이그레이션하려면 이 파일을 새 프로젝트의 동일한 위치에 복사하기만 하면 됩니다. 이것은 Bolt 데이터를 다른 팀원들과 공유해야 하는 경우에도 유용합니다.
Bolt 무료에서 Bolt 프로로 업그레이드하기
이제 Photon Bolt Pro를 사용할 수 있으면 SDK를 이 새 버전으로 쉽게 업데이트할 수 있습니다.
먼저 Bolt 업그레이드하기 섹션의 지침을 따르십시오. 버전을 변경할 때는 업그레이드를 하는 지침과 동일합니다.
업데이트의 중요한 점은 변경이나 백업을 하기 전에 SVN
이나 GitHub
와 같은 버전 제어 시스템
을 사용하여 프로젝트를 안전하게 유지해야 한다는 것입니다.
업데이트 후 게임이 정상적으로 작동하기에 필요한 가장 중요한 파일은 다음과 같습니다:
Assets/Photon/PhotonBolt/project.json
: 이 파일은 모든 Bolt 에셋의 설명을 포함하고 있습니다.Assets/Photon/PhotonBolt/assemblies/bolt.user.dll
: Bolt를 컴파일할 때마다 생성되는 DLL로 저장하여 업데이트 후 에러를 발생시키지 않는 것이 좋습니다.Assets/Photon/PhotonBolt/resources/BoltRuntimeSettings.asset
: 게임에 설정한 모든 볼트 설정이 포함된 스크립트 가능 개체입니다.
요약하면, 업데이트 과정은 다음과 같습니다:
- 위에서 언급한 파일들 백업하기
- 모든 Bolt 관련 파일 삭제하기
- 새로운 Bolt 임포트 하기
- 올바른 위치에서 파일을 되돌리기
- 완료.
또한 유니티를 한 번 이상 재시작해야 모든 Bolt DLL을 다시 로드할 수 있습니다.
또한 컴파일에 문제가 있는 경우에만 프로젝트 폴더의 루트에 있는 라이브러리
, obj
, Temp
폴더를 제거하는 것이 좋습니다(이 폴더는 에셋 폴더 내에 없습니다).
이러한 폴더를 제거하면 Unity는 프로젝트를 완전히 다시 컴파일하며, 프로젝트 크기에 따라 시간이 걸릴 수 있습니다.
코드 또는 스크립트 변경에 관계없이 업데이트는 거의 최소화되어 있습니다.
주요 차이점은 이제 IP/포트
를 사용하여 서버에 직접 연결할 수 있다는 것입니다.
SDK를 가져오면 samples_pro
폴더가 나타나고 BoltPro/BoltProInit.cs
스크립트가 나타납니다.
이 스크립트는 직접 연결을 허용하는 DotNetPlatform
을 사용하여 게임 서버를 시작하는 방법과 나중에 서버 EndPoint
를 사용하여 BoltNetwork.Connect
를 사용하여 클라이언트에서 서버에 연결하는 방법을 보여줍니다.
나머지 코드와 동작은 무료 버전과 동일해야 합니다.