PUN Classic (v1), PUN 2, Bolt는 휴업 모드입니다. Unity2022에 대해서는 PUN 2에서 서포트하지만, 신기능의 추가는 없습니다. 현재 이용중인 고객님의 PUN 및 Bolt 프로젝트는 중단되지 않고, 퍼포먼스나 성능이 떨어지는 일도 없습니다. 앞으로의 새로운 프로젝트에는 Photon Fusion 또는 Quantum을 사용해 주십시오.

Bolt 업그레이드 하기

다음은 Bolt 를 업그레이드하기 위한 단계적인 절차입니다:

Bolt 1.3으로 업그레이드하기

Photon Bolt v1.3으로 업데이트에는 여러 가지 중요한 변경사항들이 있습니다: 여러 네임스페이스가 변경되고 일부 스크립트의 가시성이 변경되었으며 프리펩에서 누락된 참조가 발생할 수 있습니다. 다음 지침은 이 업데이트의 영향을 최소화하는 것을 목적하며 다음 내용은 유의하십시오.

  1. 변경 작업을 시작하기 전에 프로젝트에 백업 및/또는 소스 제어 시스템(Git, SVN, Hg)이 있는지 확인하십시오. 이것은 정말 중요한 사항입니다.
  2. 프로젝트로 새 SDK 버전을 가져오기 전에 업데이트를 위한 프리팹을 준비해야 합니다. v1.3의 변경 내용에 일부 네임스페이스 수정이 포함됨에 따라 일부 컴포넌트가 이동되어 게임 개체에 대한 참조가 누락됩니다. 이러한 이유로 이 작업에 도움이 될 업데이트 스크립트를 작성했습니다.
    1. 샘플 저장소에서 Bolt 업데이터 스크립트를 다운로드하십시오.
    2. 프로젝트 내의 Assets/Editor 폴더에 임포트 하십시오. 이렇게 하면 유니티가 스크립트를 로드하고 적절한 메뉴 항목이 포함됩니다.
    3. (Bolt/Compile Assembly)를 컴파일 했고 모든 프리팹들이 Bolt 프리팹 데이터베이스(Assets\Photon\PhotonBolt\resources\BoltPrefabDatabase.asset)에 나열되어 있는지 확인하십시오.
    4. Bolt/Utils/Update/Save Prefabs 메뉴에 있는 작업을 실행하세요. Save DONE! 메시지가 있는 로그 메시지를 받아야 합니다. Assets\Photon\PhotonBolt\resources 폴더를 보고, entity_data.json 파일이 있는지 확인하십시오. 이 파일에는 BoltEntity 자신을 포함하여 Bolt 엔티티 프리팹의 모든 중요한 설정들이 들어 있으며 예를 들어 Bolt 히트박스 정보도 포함되어 있습니다.
    5. 나중에 사용할 것을 대비하여 이 파일을 다른 장소에 보관하십시오. 매우 중요합니다, 그렇지 않으면 수동으로 설정을 해야 합니다.
  3. Photon Bolt 관련 폴더를 삭제합니다:
    1. Assets/Photon;
    2. Assets/samples;
    3. Assets/Gizmos;
  4. 최신의 [에셋 스토어의 Bolt 패키지]를 다운로드하고 프로젝트에 임포트하십시오;
    • 평소와 같이 패키지의 모든 컨텐츠를 임포트 할 수 있습니다.
  5. Include a 새로운 Scripting Define SymbolsProject Settings에 포함하십시오. 이를 통해 다음의 일부 섹션을 사용할 수 있습니다:
    • BOLT_1_3_OR_NEWER
  6. 다음의 파일들을 백업 또는 소스 형상관리로부터 복구하십시오:
    1. Assets/Photon/PhotonBolt/project.json: 모든 Bolt 에셋;
      • SDK v1.3의 새 위치를 반영하기 위해 project.json에 설명된 직렬화된 데이터에서 올바른 참조를 가져오려면 수동으로 편집해야 하지만 몇 초 정도 걸립니다:
        1. 사용하기 쉬운 에디터로 project.json 파일을 엽니다;
        2. Bolt.Compiler. 문자열을 Photon.Bolt.Compiler.로 모두 바꿉니다 - 문장 끝의 마침표도 포함하여 모든 문장을 주의하셔서 교체하세요.
        3. 파일을 저장합니다.
    2. Assets/Photon/PhotonBolt/resources/BoltRuntimeSettings.asset: Bolt 설정.
  7. 이미 언급한 바와 같이 특정 스크립트의 이름 및 위치에 가장 적합한 여러 네임스페이스가 이동되었습니다. 프로젝트에 손상된 참조가 많다는 것을 알게 될 것입니다. 이 문제를 해결하려면 소스 코드를 수정하여 다음 네임스페이스를 변경해야 합니다:
    1. 대부분의 클래스들은 이제 Photon.Bolt 네임스페이스 내에 포함되어 있으므로, Bolt 코드가 있는 모든 스크립트에 using Photon.Bolt;를 포함해야 할 것 입니다.
    2. 스크립트에서 다음의 네임스페이스를 제거하십시오:
      1. using Bolt;
      2. using Bolt.Matchmaking;
      3. using Bolt.Photon;
    3. 직접 참조에서, 스크립트에서 참조의 Photon.Bolt 네임스페이스를 include 했으면 Bolt. 부분을 제거할 수 있습니다. 예를 들어:
      • Bolt.GlobalEventListenerGlobalEventListener
      • Bolt.EntityBehaviourEntityBehaviour
      • Bolt.IProtocolTokenIProtocolToken
      • Bolt.CommandCommand
      • Bolt.ScopeModeScopeMode
      • Bolt.GlobalTargetsGlobalTargets
      • Bolt.ReliabilityModesReliabilityModes
    4. 자주 사용되는 추가 네임스페이스:
      • Photon.Bolt.Utils: BoltLog등과 같은 유틸리팉 클래스.
      • Photon.Bolt.Collections: BoltRingBuffer와 같은 일부 컬렉션의 Bolt 자체 구현 inclue.
      • Photon.Bolt.Matchmaking: Photon 매치메이킹 API;
    5. 오류나 참조 누락 없이 프로젝트가 만들어져야 합니다. 프로젝트의 크기에 따라 시간이 걸릴 수 있지만, 모두 가능합니다..
  8. 이제 프로젝트가 프리팹 데이터를 다시 설정할 준비가 되었습니다.
    1. 사용 중인 유니티 버전(특히 2019 LTS 이상)에 따라 스크립트 참조가 누락된 경우 프리팹을 수정하고 다시 저장할 수 없습니다. 이 문제를 해결하려면 먼저 해당 참조를 제거해야 합니다:
      1. Bolt/Utils/Find Missing Scripts 메뉴에서 작업을 실행합니다. 누락된 스크립트 참조가 있는 모든 프리랩 목록이 표시됩니다. 하나씩 하나씩 스크립트를 제거하거나 8.1.2 단계에서 자동화된 방법을 사용할 수 있습니다.
      2. 누락된 참조를 제거하려면 Bolt/Utils/Remove Missing Scripts에서 작업을 실행하십시오. 이 코드는 프로젝트의 모든 프리팹에서 실행되고 누락된 스크립트 컴포넌트에 대한 모든 참조를 제거합니다.
      3. 8.1.1단계부터 작업을 다시 실행하여 구성 요소가 누락된 사전 프리팹이 없는지 확인할 수 있습니다.
    2. 단계 2에서 옮겨놓았던 entity_data.json 파일을 Assets\Photon\PhotonBolt\resources로 복사/이동하십시오.
    3. Bolt/Utils/Update/Load Prefabs의 작업을 실행하세요. 이 작업에서는 entity_data.json의 직렬화된 데이터를 읽고 프리팹에 모든 상세 사항을 설정합니다. 다음과 같이 영향을 받은 모든 프리팹의 목록을 볼 수 있습니다:Updating Player (UnityEngine.GameObject).
    4. 마지막으로, Load DONE! 메시지가 표시되며 정상적으로 모든 작업이 완료되었다는 의미입니다.
  9. Bolt (Bolt/Compile Assembly)를 재컴파일하면 완료됩니다.

Bolt 1.2.9 또는 새로운 버전으로 업그레이드하기

  1. 프로젝트에 백업 및/또는 소스 제어 시스템(Git, SVN, Hg)이 있는지 확인하십시오.
  2. Assets/boltBolt 관련 파일을 삭제합니다:
    1. Assets/Photon;
    2. Assets/samples;
    3. Assets/Plugins;
  3. [에셋 스토어에서 Bolt 패키지]를 다운로드하고 프로젝트에 임포트합니다.
  4. 다음의 파일들을 복구합니다:
    1. Bolt v1.2.5 또는 이전 버전에서 업데이트를 하는 경우:
      1. Assets/bolt/project.bytes 또는 Assets/bolt/project.xml;
      2. 이 경우에 있어서 Assets/Photon/PhotonBolt/project.json 파일을 삭제해야 에셋이 JSON 형식으로 변환됩니다.
    2. Bolt v1.2.7 또는 더 최신 버전에서 업데이트를 하는 경우:
      1. Assets/bolt/project.json;
    3. Assets/bolt/assemblies/bolt.user.dll;
    4. Assets/bolt/resources/BoltRuntimeSettings.asset;
  5. 다음 파일들을 이동합니다:
    1. Assets/bolt/project.json 파일을 Assets/Photon/PhotonBolt/project.json로;
    2. Assets/bolt/assemblies/bolt.user.dll 파일을 Assets/Photon/PhotonBolt/assemblies/bolt.user.dll로;
    3. Assets/bolt/resources/BoltRuntimeSettings.asset 파일을 Assets/Photon/PhotonBolt/resources/BoltRuntimeSettings.asset로;
  6. Assets/bolt 폴더를 삭제합니다.
  7. 유니티를 종료합니다.
  8. 유니티를 열고 Bolt를 컴파일합니다:
    1. Bolt/Compile Assembly 메뉴에서 컴파일을 실행합니다.
    2. Bolt Assets 창 (Bolt/Assets 메뉴)을 열면, 예상처럼 모든 에셋들이 들어 있어야합니다.
  9. 마법사 창이 표시되지 않으면, Bolt/Wizard 메뉴를 통해 창을 엽니다.
  10. 마법사 창에서 다음 단계를 따라합니다:
    1. Photon Cloud 자격증명을 구성합니다.
    2. 모든 원하는 패키지를 설치합니다. Core 패키지 설치는 이제 더이상 필요하지는 않습니다.
  11. 문의 사항이 있으시면, Discord 커뮤니티에 문의해주세요.
  12. Photon Bolt를 사용할 준비가 되었습니다.

Bolt 1.2.0.0 에서 1.2.8로 업그레이드하기

  1. 변경 작업을 시작하기 전에 프로젝트에 백업 및/또는 소스 제어 시스템(Git, SVN, Hg)이 있는지 확인하십시오.
  2. Assets/boltBolt 관련 파일을 삭제합니다:
    1. Assets/Photon;
    2. Assets/bolt_samples;
    3. Assets/Plugins/;
  3. [에셋 스토어에서 Bolt 패키지]를 다운로드합니다.
  4. 마법사 창이 나타나지 않으면, Bolt/Wizard 메뉴에서 엽니다.
  5. 마법사 창에서 다음 단계를 따라 하세요:
    1. Photon Cloud 자격사항을 설정합니다.
    2. 원하는 모든 패키지를 설치합니다. 최소한 Core 패키지는 반드시 설치하셔야 합니다.
    3. 문의 사항이 있으시면 Discord 커뉴니티로 문의해 주세요.
  6. 유니티를 종료합니다.
  7. 다음의 파일들을 복구합니다:
    1. v1.2.5 또는 그 이전 버전으로 업데이트한 경우 Assets/bolt/project.bytes 또는 Assets/bolt/project.xml
      1. 이 경우에는 Assets/bolt/project.json 파일도 삭제해야지만 에셋들이 JSON 형식으로 변환됩니다.
    2. Bolt v1.2.7 및 더 신규 버전에서 업데이트를 한 경우 Assets/bolt/project.json
    3. Assets/bolt/assemblies/bolt.user.dll;
    4. Assets/bolt/resources/BoltRuntimeSettings.asset;
  8. 유니티를 열고 Bolt를 컴파일합니다:
    1. Bolt/Compile Assembly 메뉴에서 컴파일을 실행합니다.
    2. Bolt Assets 창 (Bolt/Assets 메뉴)을 열면 , 예상된 모든 에셋들이 나타나야 합니다. 예상대로 나타났으면, 이전의 프로젝트 파일(Assets/bolt/project.bytes 또는 Assets/bolt/project.xml)들을 삭제/제거할 수 있습니다.
  9. 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: 게임에 설정한 모든 볼트 설정이 포함된 스크립트 가능 개체입니다.

요약하면, 업데이트 과정은 다음과 같습니다:

  1. 위에서 언급한 파일들 백업하기
  2. 모든 Bolt 관련 파일 삭제하기
  3. 새로운 Bolt 임포트 하기
  4. 올바른 위치에서 파일을 되돌리기
  5. 완료.

또한 유니티를 한 번 이상 재시작해야 모든 Bolt DLL을 다시 로드할 수 있습니다. 또한 컴파일에 문제가 있는 경우에만 프로젝트 폴더의 루트에 있는 라이브러리, obj, Temp 폴더를 제거하는 것이 좋습니다(이 폴더는 에셋 폴더 내에 없습니다). 이러한 폴더를 제거하면 Unity는 프로젝트를 완전히 다시 컴파일하며, 프로젝트 크기에 따라 시간이 걸릴 수 있습니다.

코드 또는 스크립트 변경에 관계없이 업데이트는 거의 최소화되어 있습니다. 주요 차이점은 이제 IP/포트를 사용하여 서버에 직접 연결할 수 있다는 것입니다. SDK를 가져오면 samples_pro 폴더가 나타나고 BoltPro/BoltProInit.cs 스크립트가 나타납니다. 이 스크립트는 직접 연결을 허용하는 DotNetPlatform을 사용하여 게임 서버를 시작하는 방법과 나중에 서버 EndPoint를 사용하여 BoltNetwork.Connect를 사용하여 클라이언트에서 서버에 연결하는 방법을 보여줍니다. 나머지 코드와 동작은 무료 버전과 동일해야 합니다.

Back to top