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

v1.2.8의 새로운 사항

주요 변경사항:

변경사항의 전체 목록은, 여기 로그를 참고하세요.

BoltEntity API 명명 변경

BoltEntity 의 여러 속성들이 C# 코딩 지침을 맞추기 위해 리팩토링되었습니다. 이전의 심볼은 여전히 존재하지만, 구식 마크가 되어있으며 다음 버전에서는 제거될 예정입니다. 전체 변경 목록:

  • sceneGuid 에서 SceneGuid로;
  • serializerGuid 에서 SerializerGuid로;
  • prefabId 에서 PrefabId로;
  • source 에서 Source로;
  • attachToken 에서 AttachToken로;
  • detachToken 에서 DetachToken로;
  • controlGainedToken 에서 ControlGainedToken로;
  • controlLostToken 에서 ControlLostToken로;
  • networkId 에서 NetworkId로;
  • canFreeze 에서 CanFreeze로;
  • controller 에서 Controller로;
  • isAttached 에서 IsAttached로;
  • isControlled 에서 IsControlled로;
  • isControllerOrOwner 에서 IsControllerOrOwner로;
  • isFrozen 에서 IsFrozen로;
  • isSceneObject 에서 IsSceneObject로;
  • isOwner 에서 IsOwner로;
  • hasControl 에서 HasControl로;
  • hasControlWithPrediction 에서 HasControlWithPrediction로;
  • persistsOnSceneLoad 에서 PersistsOnSceneLoad로;

그리고 BoltEntity가 부모를 가지고 있다는것을 알려주는HasParent새로운 속성이 추가되었습니다.

새로운 연결 해제 원인

피어가 셧다운 되었을 때, 셧다운이 실제로 일어나기 전에 원인을 알 수 있습니다. 이는 다음고 같이 모든 Bolt.GlobalEventListener 상의 BoltShutdownBegin 콜백을 구독함으로써 가능합니다:

C#

public class MyNetworkCallback : Bolt.GlobalEventListener
{
    public override void BoltShutdownBegin(Bolt.AddCallback registerDoneCallback)
    {
        // Your shutdown behavior
    }

    public override void BoltShutdownBegin(Bolt.AddCallback registerDoneCallback, UdpKit.UdpConnectionDisconnectReason disconnectReason)
    {
        // Your shutdown behavior
    }
}

보시다시피, 두 버전의 BoltShutdownBegin을 제공합니다. 마지막 것은, 연결 해제 사유를 다룰 수 있는 곳입니다. 이전에 있었던 사유(알 수 없음, 시간 초과, 오류, 연결 해제됨)와 더불어 두 종류의 유형을 추가했습니다:

  • UdpConnectionDisconnectReason.Authentication: 피어가 Photon 서버에 인증을 할 수 없을 때 발생합니다. 예를 들어, 잘못되었거나 알 수 없는 AppID를 사용할 때입니다.
  • UdpConnectionDisconnectReason.MaxCCUReached: 피어가 사용한 AppID가 최대로 허용된 동시 접속 사용자에 도달했을 때 발생합니다.

Namespace Changes

다음 namespaces 이름이 변경되었습니다:

  • Bolt.photon 에서 Bolt.Photon로;
  • udpkit.platform.photon.photon 에서 udpkit.platform.photon로;

동적 지역 목록

이제 Bolt는 "관리화면 지역 필터링" 기능과 호환됩니다.
연결할 지역을 최고 지역으로 선택했을 때, Photon 통합은 특정 관리화면에서 피어가 사용하는 AppId에 대해서 선택한 지역만을 고려하여 테스트하여 가장 낮은 핑을 가진 지역을 선택합니다(만약 비어있다면, 모든 지역이 고려됩니다).

이 기능은 더 적은 지역에서 더 많은 플레이어를 합치고 호스트와 클라이언트 간의 매칭을 늘리려는 경우에 유용합니다.

Bolt 코어 패키지

이 버전에서는, Bolt Core 패키지의 설치 필요성을 제거했습니다. 이 패키지의 모든 파일들은 메인 SDK 패키지 내로 통합되었습니다. Bolt Wizard 윈도우를 실행했을 때, 새로운 경고가 발생합니다:

Bolt Wizard - Core package
Bolt Wizard - Core package.

이름으로 룸 참여

Bolt 1.2.8에서는, 이름을 사용하여 특정 세션/룸에 참여할 수 있습니다. 아래에서 보인 것과 같이, 클라이언트에서 연결할 때 PhotonSession 인스턴스를 전달해야 할 필요가 있으나, SessionListUpdated을 사용하여 하나를 골라 참여하기 위해 세션을 리슨하도록 제한되지 않으며, 알고 있는 룸 이름을 사용하여 새로운 세션을 만드는 것이 가능합니다.

나만의 매치매이킹 설정 또는 룸에 입장할 클라이언트들에게 다른 방법을 사용하여 알려주는 것을 구현한다면 매우 유용할 수 있습니다.

C#

// ...
public override void BoltStartDone()
{
    if (BoltNetwork.IsServer)
    {
        BoltNetwork.SetServerInfo("mygame", null);
        BoltNetwork.LoadScene("<my game scene>");
    }

    if (BoltNetwork.IsClient)
    {
        BoltNetwork.Connect(PhotonSession.Build("mygame"));
    }
// ...
}

A2S 서비스 [Bolt 프로]를 사용 불가하기 위한 옵션

Bolt Settings 윈도우에서 A2S 서비스를 활성화/비활성화 하기위한 옵션이 추가되었습니다. 이 서비스는 게임 호스트에 대한 정보 복구를 하는데 사용될 수 있습니다.

Bolt Settings - A2S Service Enable/Disable
Bolt Settings - A2S Service Enable/Disable.
Back to top